Skip to content

sip-protocol/blog-sip

Repository files navigation

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β•β•β• β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—    β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ–ˆβ•—
β•šβ•β•β•β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β•β•     β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘         β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
β•šβ•β•β•β•β•β•β• β•šβ•β• β•šβ•β•         β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β• β•šβ•β•β•β•β•β•  β•šβ•β•β•β•β•β•

SIP Protocol Blog

Privacy is not a feature. It's a right.

Technical deep-dives, ecosystem updates, and privacy thought leadership for Web3

Technical guides β€’ Privacy education β€’ Ecosystem news β€’ Developer tutorials

License: MIT Astro Tailwind Posts MDX

πŸ† Winner β€” Zypherpunk Hackathon ($6,500) | Part of winning submission

Live: blog.sip-protocol.org


Table of Contents


πŸ“ What is SIP Blog?

SIP Blog is the official technical blog for SIP Protocol β€” the privacy standard for Web3. We publish deep-dives on privacy technology, ecosystem updates, and thought leadership content.

docs.sip-protocol.org β†’ "How to use SIP" (reference documentation)
blog.sip-protocol.org β†’ "Why privacy matters" (thought leadership + tutorials)

34 posts published β€” exceeding M16 target of 12 posts by 3x.


πŸ“Š Content Strategy

Categories

Category Purpose Examples
Technical Deep-dives, specs, architecture Noir ZK proofs, stealth addresses
Ecosystem Partnerships, integrations, updates Arcium, Jupiter, provider comparisons
Thought Leadership Privacy philosophy, industry trends Why privacy matters, a16z validation
Tutorials How-to guides, code examples SDK quickstart, wallet integration
Announcements Releases, milestones, news Grant approvals, hackathon wins

Target Audiences

Audience Content Focus
Developers SDK tutorials, integration guides, code examples
Founders Privacy positioning, competitive analysis
Institutions Compliance, viewing keys, audit trails
General Crypto Privacy education, why it matters

LLMO (LLM Optimization)

Posts are optimized for AI discoverability:

  • tldr: Twitter-length summary (280 chars)
  • keyTakeaways: Bullet points LLMs can cite
  • targetAudience: Routing hints for AI
  • Semantic HTML: Proper headings, lists, code blocks

⭐ Featured Posts

Privacy Education

Post Description
Why Privacy Matters on Solana The case for privacy on the fastest blockchain
Privacy for Humans Non-technical privacy explainer
Wallet Surveillance Exposed How your wallet activity is tracked

Technical Deep-Dives

Post Description
Noir ZK Proofs on Solana Our Noir circuit implementation
Stealth Addresses for Humans DKSAP explained simply
Viewing Keys TLDR Selective disclosure for compliance

Competitive Analysis

Post Description
SIP vs PrivacyCash Cryptographic privacy vs pool mixing
a16z Big Ideas 2026 Validates SIP Industry validation of our thesis

πŸš€ Quick Start

Prerequisites

  • Node.js 20+
  • npm or pnpm

Installation

# Clone the repository
git clone https://github.com/sip-protocol/blog-sip.git
cd blog-sip

# Install dependencies
npm install

# Start development server
npm run dev

# Open http://localhost:4321

✍️ Writing Posts

1. Create a Post

# Create new post file
touch src/content/blog/my-new-post.mdx

2. Add Frontmatter

---
title: 'Your Post Title'
description: 'Brief description for SEO (max 160 chars)'
pubDate: '2026-02-01'
category: 'technical'
tags: ['privacy', 'solana', 'stealth-addresses']

# LLMO (AI discoverability)
tldr: 'One-line summary for AI (max 280 chars)'
keyTakeaways:
  - 'Key point 1'
  - 'Key point 2'
  - 'Key point 3'
targetAudience: 'Developers building privacy features'

# Optional
heroImage: './images/hero.png'
author: 'SIP Protocol Team'
readingTime: 5
featured: false
relatedPosts:
  - 'stealth-addresses-for-humans'
  - 'viewing-keys-tldr'
---

3. Write Content

import Callout from '../components/Callout.astro'
import CodeBlock from '../components/CodeBlock.astro'

# Introduction

Your content here...

<Callout type="info">
  Important note for readers
</Callout>

## Code Example

<CodeBlock language="typescript">
{`const sip = new SIP({ network: 'mainnet' })`}
</CodeBlock>

4. Preview & Publish

# Preview locally
npm run dev

# Build to check for errors
npm run build

# Commit and push
git add . && git commit -m "feat(blog): add new post" && git push

πŸ—οΈ Architecture

Project Structure

blog-sip/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ content/
β”‚   β”‚   β”œβ”€β”€ blog/                 # Blog posts (34 MDX files)
β”‚   β”‚   β”‚   β”œβ”€β”€ why-privacy-matters-solana.md
β”‚   β”‚   β”‚   β”œβ”€β”€ stealth-addresses-for-humans.md
β”‚   β”‚   β”‚   β”œβ”€β”€ noir-zk-proofs-solana.md
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”œβ”€β”€ authors/              # Author profiles
β”‚   β”‚   └── config.ts             # Content collections schema
β”‚   β”‚
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ Callout.astro         # Info/warning/tip boxes
β”‚   β”‚   β”œβ”€β”€ CodeBlock.astro       # Syntax-highlighted code
β”‚   β”‚   β”œβ”€β”€ TLDRBox.astro         # TLDR summary component
β”‚   β”‚   β”œβ”€β”€ PostCard.astro        # Blog post preview card
β”‚   β”‚   └── ...
β”‚   β”‚
β”‚   β”œβ”€β”€ layouts/
β”‚   β”‚   β”œβ”€β”€ BaseLayout.astro      # Site-wide layout
β”‚   β”‚   └── PostLayout.astro      # Blog post layout
β”‚   β”‚
β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ index.astro           # Homepage
β”‚   β”‚   β”œβ”€β”€ blog/[...slug].astro  # Dynamic post routes
β”‚   β”‚   β”œβ”€β”€ tags/[tag].astro      # Tag archives
β”‚   β”‚   β”œβ”€β”€ category/[cat].astro  # Category archives
β”‚   β”‚   └── rss.xml.ts            # RSS feed
β”‚   β”‚
β”‚   └── styles/
β”‚       └── global.css            # Tailwind + custom styles
β”‚
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ images/                   # Static images
β”‚   └── favicon.svg               # Site icon
β”‚
β”œβ”€β”€ astro.config.mjs              # Astro configuration
β”œβ”€β”€ tailwind.config.js            # Tailwind configuration
└── package.json                  # Dependencies

Content Flow

MDX File β†’ Content Collection β†’ Astro Page β†’ Static HTML
    β”‚              β”‚                β”‚             β”‚
    β”‚              β–Ό                β”‚             β”‚
    β”‚      Schema Validation       β”‚             β”‚
    β”‚      (frontmatter)           β”‚             β”‚
    β”‚              β”‚                β”‚             β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Tech Stack

Category Technology Purpose
Framework Astro 5 Static site generator
Content MDX Markdown + components
Styling Tailwind CSS 4 Utility-first CSS
Typography @tailwindcss/typography Prose styling
Search Pagefind Static search index
RSS @astrojs/rss Feed generation
Sitemap @astrojs/sitemap SEO sitemap
OG Images astro-og-canvas Dynamic social images
Syntax Shiki Code highlighting

✨ Features

πŸ“– Content Features

  • 34 published posts across 5 categories
  • MDX support for interactive components
  • Related posts for discovery
  • Reading time estimates
  • Tag & category archives

πŸ” SEO & Discovery

  • LLMO optimized for AI discoverability
  • RSS feed for subscribers
  • Sitemap for search engines
  • OG images for social sharing
  • JSON-LD structured data

⚑ Performance

  • Static generation for fast loads
  • Pagefind search (client-side, no server)
  • Optimized images with Sharp
  • Minimal JavaScript (Astro islands)

🎨 Design

  • Dark mode by default
  • Mobile responsive
  • Typography optimized for reading
  • Syntax highlighting for code

πŸ’» Development

Commands

npm run dev           # Start dev server (localhost:4321)
npm run build         # Build for production
npm run preview       # Preview production build
npm run lint          # Lint with ESLint
npm run lint:fix      # Fix lint errors
npm run format        # Format with Prettier
npm run format:check  # Check formatting

Adding Components

---
// src/components/MyComponent.astro
interface Props {
  title: string
  type?: 'info' | 'warning' | 'tip'
}

const { title, type = 'info' } = Astro.props
---

<div class={`callout callout-${type}`}>
  <h3>{title}</h3>
  <slot />
</div>

Using in MDX

import MyComponent from '../components/MyComponent.astro'

<MyComponent title="Note" type="info">
  This is a custom callout component.
</MyComponent>

πŸš€ Deployment

Docker (Production)

# Build Docker image
docker build -t blog-sip .

# Run locally
docker run -p 4321:80 blog-sip

VPS Configuration

Service Port Domain
blog-sip 5004 blog.sip-protocol.org
# docker-compose.yml (on VPS)
name: sip-blog

services:
  blog:
    image: ghcr.io/sip-protocol/blog-sip:latest
    container_name: sip-blog
    ports:
      - "5004:80"
    restart: unless-stopped

CI/CD Pipeline

Push to main β†’ GitHub Actions β†’ Build Astro β†’ Build Docker β†’ Push GHCR β†’ SSH Deploy

πŸ”— Related Projects

Project Description Link
sip-protocol Core SDK (reference for technical content) GitHub
docs-sip Documentation (complements blog) docs.sip-protocol.org
sip-website Marketing website sip-protocol.org
sip-app Privacy application app.sip-protocol.org

πŸ“„ License

MIT License β€” see LICENSE file for details.


34 Posts Published | Privacy Thought Leadership for Web3

Privacy is not a feature. It's a right.

Read the Blog Β· RSS Feed Β· Contribute

Part of the SIP Protocol ecosystem

About

SIP Protocol Blog - Technical deep-dives, ecosystem updates, and privacy insights

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors