Skip to content

LumeWeb/web3ready

Repository files navigation

@lumeweb/web3ready

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.

About

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.

Core Philosophy

  • 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

Tech Stack

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

Getting Started

Prerequisites

  • Node.js 18+
  • pnpm 10.x

Installation

# Clone the repository
git clone <repository-url>
cd web3ready

# Install dependencies
pnpm install

Development

# Start development server at localhost:4321
pnpm dev

# Or use the start alias
pnpm start

Production Build

# Build for production (output to dist/)
pnpm build

# Preview production build locally
pnpm preview

Astro CLI Commands

# Run Astro CLI commands
pnpm astro <command>

Dependency Updates

# Check for outdated packages and update
pnpm taze

Configuration

Path Aliases

The 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.

Environment Variables

Create a .env file in the root directory:

# Site URL (required for sitemap generation)
SITE_URL=https://web3ready.org

Tailwind Configuration

Custom 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

LLM Documentation

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.

Project Structure

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

Component Patterns

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 Management

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>;

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Guidelines

  • Follow the existing code style and conventions
  • Use TypeScript for all new components
  • Run pnpm build before submitting to ensure no build errors
  • Keep commits atomic and descriptive
  • Update documentation as needed

License

This project is dedicated to the public domain under the CC0 1.0 Universal license.

Acknowledgments

  • The Cypherpunk movement for foundational principles
  • The Autonomist community for resonance and inspiration
  • Open source projects that make this work possible

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors