Skip to content

WeWriteApp/WeWrite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WeWrite

A social wiki where every page you write is a fundraiser.

WeWrite transforms knowledge sharing into a collaborative economy where writers earn direct USD payments from their contributions and readers support creators with transparent monthly funding.

🌐 Connect With Us

  • πŸ”— Bento - All our links in one place
  • πŸ“Έ Instagram - Behind the scenes and updates
  • πŸŽ₯ YouTube - Tutorials and feature demos
  • 🐦 Twitter - Real-time updates and community
  • πŸ’¬ Discord - Join our community discussions

✨ What Makes WeWrite Special

  • πŸ“ Collaborative Writing - Create and edit pages together
  • πŸ’° Direct USD Payments - Support creators with transparent monthly funding
  • πŸ”— Smart Linking - Connect ideas across the platform
  • πŸŒ™ Beautiful Interface - Clean, modern design with dark mode
  • πŸ”’ Secure & Private - Your data is protected and encrypted

πŸš€ Quick Start

WeWrite is built with Next.js and uses modern web technologies for optimal performance.

Prerequisites

  • Node.js 18+
  • pnpm (preferred package manager)

Installation

# Install pnpm if you don't have it
npm install -g pnpm

# Clone the repository
git clone https://github.com/WeWriteApp/WeWrite.git
cd WeWrite

# Install dependencies
pnpm install

# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your configuration

# Run the development server
pnpm dev

Open http://localhost:3000 to see WeWrite in action! πŸŽ‰

πŸ“š Documentation

πŸ“‹ COMPLETE DOCUMENTATION INDEX - πŸ—‚οΈ NAVIGATION HUB: Complete guide to all WeWrite documentation

πŸ†• Recent Changes (Start Here for 2025 Updates)

πŸ”’ Security & Core Systems (Essential Reading)

πŸ’° Storage Balance Payout System

WeWrite uses Stripe's Storage Balance system combined with the innovative "Use It or Lose It" model for perfect fund separation and enhanced auditability.

How It Works:

  • Payments Balance = Platform Revenue (yours to keep)
  • Storage Balance = Creator Obligations (escrowed by Stripe)
  • "Use It or Lose It" = Unallocated funds become platform revenue

Key Benefits:

  • βœ… Perfect Fund Separation in Stripe dashboard
  • βœ… Stripe-Managed Auditability for regulatory compliance
  • βœ… Enhanced Creator Trust through visible escrow
  • βœ… Automated Monthly Payouts from Storage Balance
  • βœ… Maintained Innovation with "use it or lose it" engagement

Documentation:

πŸ—οΈ Architecture & Environment

🎨 User Interface & Experience

⚑ Performance & Optimization

πŸ› οΈ Development & Maintenance

πŸ› οΈ Technology Stack

Core Technologies

  • βš›οΈ Next.js 14 - React framework with App Router
  • πŸ”₯ Firebase - Backend-as-a-Service platform
  • 🎨 Tailwind CSS - Utility-first CSS framework
  • πŸ“ Slate.js - Customizable rich text editor framework
  • πŸ’³ Stripe - Payment processing and subscriptions

Firebase Services

  • πŸ—„οΈ Firestore - NoSQL document database for pages, users, and versions
  • πŸ” Authentication - Email/password authentication with session management
  • ☁️ Functions - Serverless functions for webhooks and background processing
  • πŸ“ Storage - File storage for images and attachments

Development & Deployment

  • πŸ“¦ pnpm - Fast, disk space efficient package manager
  • πŸš€ Vercel - Deployment platform with automatic CI/CD
  • πŸ“Š LogRocket - Session replay and error tracking
  • πŸ” TypeScript - Type-safe JavaScript development

Key Features

  • πŸŒ™ Dark Mode - System-aware theme switching
  • πŸ“± Responsive Design - Mobile-first responsive interface
  • πŸ”— Smart Linking - Automatic page linking and backlinks
  • πŸ’° USD Creator Support - Direct USD payments to creators with transparent monthly funding
  • πŸ”’ Security - Comprehensive security measures and data protection

πŸ“ Project Structure

WeWrite/
β”œβ”€β”€ app/                    # Next.js App Router
β”‚   β”œβ”€β”€ api/               # API routes and endpoints
β”‚   β”œβ”€β”€ auth/              # Authentication pages
β”‚   β”œβ”€β”€ components/        # Reusable UI components
β”‚   β”œβ”€β”€ contexts/          # React contexts for global state
β”‚   β”œβ”€β”€ hooks/             # Custom React hooks
β”‚   β”œβ”€β”€ lib/               # Utility libraries and helpers
β”‚   β”œβ”€β”€ providers/         # Context providers
β”‚   β”œβ”€β”€ settings/          # User settings pages
β”‚   └── utils/             # Utility functions
β”œβ”€β”€ docs/                  # Technical documentation
β”œβ”€β”€ public/                # Static assets
└── functions/             # Firebase Cloud Functions

Key Directories

  • app/ - Next.js 14 App Router with file-based routing
  • app/components/ - Reusable UI components organized by feature
  • app/api/ - API routes for backend functionality
  • docs/ - Comprehensive technical documentation
  • functions/ - Firebase Cloud Functions for webhooks and background tasks

πŸš€ Deployment

Automatic Deployment

WeWrite uses Vercel for automatic deployment:

  • Production: Deploys from main branch to wewrite.app
  • Preview: Deploys from dev branch for testing
  • Environment Variables: Configured in Vercel dashboard

Local Development Environment

WeWrite uses branch-aware environment detection for local development:

  • Main branch (main): Uses production collections - connects to real data
  • Dev branch (dev): Uses dev collections (DEV_* prefix) - isolated test data
  • Other branches: Uses dev collections (safe default) - isolated test data

This ensures you can test against production data when needed (main branch) while keeping development work safely isolated (dev branch).

Manual Deployment

# Build for production
pnpm build

# Deploy to Vercel
pnpm deploy

For detailed deployment procedures, see PRODUCTION_DEPLOYMENT_GUIDE.

🀝 Contributing

We welcome contributions! Please see our contributing guidelines:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Follow our coding standards (see documentation)
  4. Write tests for new functionality
  5. Submit a pull request

Development Guidelines

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ’¬ Support


Made with ❀️ by the WeWrite team

Releases

No releases published

Sponsor this project

Packages

No packages published

Contributors 7