ββββββββ βββ βββββββ βββββββ βββ βββββββ βββββββ ββββββββ βββ ββββββββ βββββββββββ βββββββββββββββββ ββββββββ βββ ββββββββ βββββββββββ βββ ββββββ ββββ ββββββββ βββ βββββββ βββββββββββ βββ ββββββ βββ ββββββββ βββ βββ ββββββββββββββββββββββββββββββββββ ββββββββ βββ βββ βββββββ ββββββββ βββββββ βββββββ
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
π Winner β Zypherpunk Hackathon ($6,500) | Part of winning submission
Live: blog.sip-protocol.org
- What is SIP Blog?
- Content Strategy
- Featured Posts
- Quick Start
- Writing Posts
- Architecture
- Tech Stack
- Features
- Development
- Deployment
- Related Projects
- License
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.
| 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 |
| 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 |
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
| 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 |
| 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 |
| Post | Description |
|---|---|
| SIP vs PrivacyCash | Cryptographic privacy vs pool mixing |
| a16z Big Ideas 2026 Validates SIP | Industry validation of our thesis |
- Node.js 20+
- npm or pnpm
# 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# Create new post file
touch src/content/blog/my-new-post.mdx---
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'
---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># 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 pushblog-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
MDX File β Content Collection β Astro Page β Static HTML
β β β β
β βΌ β β
β Schema Validation β β
β (frontmatter) β β
β β β β
ββββββββββββββββ΄βββββββββββββββββ΄ββββββββββββββ
| 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 |
- 34 published posts across 5 categories
- MDX support for interactive components
- Related posts for discovery
- Reading time estimates
- Tag & category archives
- LLMO optimized for AI discoverability
- RSS feed for subscribers
- Sitemap for search engines
- OG images for social sharing
- JSON-LD structured data
- Static generation for fast loads
- Pagefind search (client-side, no server)
- Optimized images with Sharp
- Minimal JavaScript (Astro islands)
- Dark mode by default
- Mobile responsive
- Typography optimized for reading
- Syntax highlighting for code
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---
// 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>import MyComponent from '../components/MyComponent.astro'
<MyComponent title="Note" type="info">
This is a custom callout component.
</MyComponent># Build Docker image
docker build -t blog-sip .
# Run locally
docker run -p 4321:80 blog-sip| 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-stoppedPush to main β GitHub Actions β Build Astro β Build Docker β Push GHCR β SSH Deploy
| 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 |
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