ARblog is a safe, uncensored, and decentralized blogging/microblogging platform built on the Arweave blockchain. This application allows users to create profiles, publish blog posts, and view content from other users, all stored permanently on the Arweave network.
- Decentralized Storage: All content is stored permanently on the Arweave blockchain
- User Profiles: Create and manage your personalized user profile
- Blog Publishing: Write and publish blog posts with markdown support
- Feed View: Discover posts from other users
- Wallet Integration: Connect with Arweave-compatible wallets
- Responsive Design: Beautiful UI that works on mobile and desktop
- Frontend: React 18, TypeScript, Vite
- UI Components: Radix UI, Tailwind CSS
- Blockchain: Arweave
- Authentication: Arweave Wallet Kit
- State Management: TanStack Query (React Query)
- Routing: React Router
To run this project locally, you need:
- Node.js (v18+)
- pnpm (v8+)
- An Arweave wallet (ArConnect or other compatible wallet extension)
- AR tokens for publishing content to the Arweave network
-
Clone the repository:
git clone https://github.com/yourusername/arblog.git cd arblog -
Install dependencies:
pnpm install
-
Start the development server:
pnpm dev
-
Open your browser and navigate to
http://localhost:5173
arblog/
├── public/ # Static assets
├── src/
│ ├── assets/ # Project assets like images
│ ├── components/ # Reusable UI components
│ ├── contexts/ # React context providers
│ │ └── ArweaveProvider.tsx # Arweave integration context
│ ├── hooks/ # Custom React hooks
│ │ └── useArweaveQueries.ts # Arweave data fetching hooks
│ ├── lib/ # Utility functions and libraries
│ │ └── arweave.ts # Arweave interaction functions
│ ├── pages/ # Application pages
│ │ ├── Compose.tsx # Create new blog posts
│ │ ├── Feed.tsx # View all blog posts
│ │ ├── Post.tsx # View single blog post
│ │ ├── Profile.tsx # User profile page
│ │ └── PublicProfile.tsx # View other users' profiles
│ ├── App.tsx # Main application component
│ └── main.tsx # Application entry point
├── index.html # HTML entry point
├── package.json # Project dependencies and scripts
└── vite.config.ts # Vite configuration
- Navigate to the app home page
- Click on "Connect Wallet" in the navigation bar
- Select your Arweave wallet provider
- Accept the connection request
After connecting your wallet:
- If you don't have a profile, a dialog will automatically appear
- Enter your username and a short bio
- Click "Create Profile"
- Click on "Compose" in the navigation bar
- Fill in the title and content for your blog post
- Add tags (optional)
- Click "Publish"
Note: Publishing content requires AR tokens as it stores data on the Arweave blockchain
- Click on your username or avatar in the navigation bar
- View your profile information and published posts
To create a production build:
pnpm buildThe build artifacts will be stored in the dist/ directory.
To preview the production build locally:
pnpm previewContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Arweave for providing the decentralized storage network
- Arweave Wallet Kit for wallet connection utilities
- React and the entire open-source community
