Web3Ready is a philosophy website rooted in cypherpunk identity. It synthesizes Cypherpunk warnings, Autonomist resonance, and thirty years of evidence to provide a grounded, code-first, anti-hype perspective on real decentralization.
In an era of empty promises and marketing-driven narratives around "Web3," Web3Ready cuts through the noise with a critical, evidence-based approach. This project serves as a resource for builders who want to understand what real decentralization looks like—backed by cryptographic principles, historical context, and practical implementation knowledge.
- Cypherpunk Identity: Privacy as a fundamental right, cryptography as a tool for liberation
- Anti-Hype: Critical analysis of blockchain claims, focusing on substance over speculation
- Code-First: Practical implementation over theoretical promises
- Evidence-Based: Thirty years of decentralization experiments inform our perspective
| Category | Technology |
|---|---|
| Framework | Astro 5.x (static site generator with React integration) |
| Language | TypeScript |
| Styling | Tailwind CSS v4 with tailwind-variants |
| Package Manager | pnpm |
| Integrations | React, Sitemap, Tailwind, astro-llms-txt |
| Validation | Zod |
| Fonts | Inter, JetBrains Mono, Space Grotesk |
- Node.js 18+
- pnpm 10.x
# Clone the repository
git clone <repository-url>
cd web3ready
# Install dependencies
pnpm install# Start development server at localhost:4321
pnpm dev
# Or use the start alias
pnpm start# Build for production (output to dist/)
pnpm build
# Preview production build locally
pnpm preview# Run Astro CLI commands
pnpm astro <command># Check for outdated packages and update
pnpm tazeThe project uses path aliases for cleaner imports:
// Instead of:
import Component from '../../components/ui/Component'
// You can use:
import Component from '@/components/ui/Component'The @/ alias maps to the src/ directory.
Create a .env file in the root directory:
# Site URL (required for sitemap generation)
SITE_URL=https://web3ready.orgCustom color palette and design tokens are defined in tailwind.config.mjs:
| Color | Value | Usage |
|---|---|---|
| Primary Gold | #D4A017 |
Primary actions, accents |
| Cyan/Teal | #4A9E9E |
Secondary accents |
| Background Dark | #0A0A0A |
Main background |
| Terminal | #1A1A1A |
Code blocks, terminal UI |
The project automatically generates LLM-optimized documentation:
/llms-full.txt- Complete site content for comprehensive context/llms-small.txt- Index of key pages with structure only
These files are generated by the astro-llms-txt integration and are useful for AI-assisted development and documentation.
web3ready/
├── src/
│ ├── components/ # UI components (React .tsx and Astro .astro)
│ │ ├── content/ # Content-specific components
│ │ │ ├── CreditsSection.tsx
│ │ │ ├── CreditItem.tsx
│ │ │ ├── CC0Notice.tsx
│ │ │ ├── PageFooterNav.tsx
│ │ │ ├── PageHeader.tsx
│ │ │ └── SectionHeader.tsx
│ │ ├── layout/ # Layout components
│ │ │ ├── Header.tsx
│ │ │ ├── Footer.tsx
│ │ │ └── MainLayout.astro
│ │ ├── manifesto/ # Manifesto-related components
│ │ │ ├── ManifestoStory.tsx
│ │ │ ├── ManifestoProblems.tsx
│ │ │ ├── ManifestoPrinciples.tsx
│ │ │ ├── ManifestoPath.tsx
│ │ │ ├── PrincipleCard.tsx
│ │ │ ├── PrincipleCardCollapsible.tsx
│ │ │ └── ExpandableSection.tsx
│ │ ├── sections/ # Section components
│ │ │ ├── Hero.tsx
│ │ │ ├── SignalVsNoise.tsx
│ │ │ ├── CodeAsLaw.tsx
│ │ │ ├── CTA.tsx
│ │ │ └── ManifestoSection.tsx
│ │ └── ui/ # Base UI components
│ │ ├── Button.tsx
│ │ ├── Card.tsx
│ │ ├── Section.tsx
│ │ ├── Table.tsx
│ │ └── Terminal.tsx
│ ├── config/ # Configuration files
│ │ └── navigation.ts # Navigation configuration
│ ├── content/ # Content collections and data
│ │ ├── config.ts # Content configuration with Zod schemas
│ │ └── manifests/ # JSON manifests with Zod validation
│ │ └── main.json
│ ├── data/ # Data access layer
│ │ └── manifesto.ts # Manifesto data utilities
│ ├── pages/ # Astro file-based routing
│ │ ├── index.astro # Homepage
│ │ ├── about.astro # About page
│ │ ├── philosophy.astro # Philosophy content
│ │ ├── manifesto.astro # Manifesto page
│ │ ├── cypherpunk-manifesto.astro
│ │ ├── autonomist-manifesto.astro
│ │ └── building-blocks.astro
│ ├── styles/ # Global styles
│ │ └── global.css # Global CSS with Tailwind imports
│ └── utils/ # Utility functions
│ └── tv.ts # Tailwind variants utilities
├── public/
│ └── assets/ # Static assets (images, etc.)
├── astro.config.mjs # Astro configuration
├── tailwind.config.mjs # Tailwind CSS configuration
├── tsconfig.json # TypeScript configuration
├── taze.config.js # Dependency update checker config
└── package.json
Astro Components (.astro) - Static, server-rendered:
- Layout components
- Pages
- Static content sections
React Components (.tsx) - Interactive, client-side:
- Terminal components
- Expandable sections
- Interactive cards
- Dynamic forms
Content is managed via JSON manifests with Zod validation:
// Example content schema
import { z } from 'zod';
const ManifestoSchema = z.object({
title: z.string(),
principles: z.array(z.object({
id: z.string(),
title: z.string(),
content: z.string(),
})),
});
export type Manifesto = z.infer<typeof ManifestoSchema>;- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style and conventions
- Use TypeScript for all new components
- Run
pnpm buildbefore submitting to ensure no build errors - Keep commits atomic and descriptive
- Update documentation as needed
This project is dedicated to the public domain under the CC0 1.0 Universal license.
- The Cypherpunk movement for foundational principles
- The Autonomist community for resonance and inspiration
- Open source projects that make this work possible