Thanks to visit codestin.com
Credit goes to github.com

Skip to content

fae-foundation/app

Repository files navigation

Warning

The Arctica app is still in prototyping and early development.

Arctica

๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‡จ๐Ÿ‡ณ ็ฎ€ไฝ“ไธญๆ–‡

Decentralized Platform for Fandoms - Ship and Preserve Your Fanworks On-Chain

Next.js React TypeScript Lens Protocol Grove Storage License: AGPL TanStack Query

๐Ÿฉต Project Overview

Arctica is a decentralized fandom portal that provides creators with a secure, open environment to share and preserve fan works. As an alternative to Tumblr, Pixiv, and Lofter, Arctica leverages blockchain technology to ensure long-term preservation and complete ownership of creative works.

โœจ Core Features

  • ๐Ÿšข On-Chain Storage: long-term content storage powered by Lens Protocol - Grove
  • ๐Ÿช Creator Tools: Text editor with image and text composition support
  • ๐ŸŒ Decentralized: Censorship-resistant with full creator ownership
  • ๐Ÿ‘ฅ Social Interaction: Follow, like, comment, and share functionality
  • ๐Ÿ” Content Discovery: Smart recommendations and tag-based categorization
  • ๐ŸŒ Multilingual: Multilingual interface support
  • ๐Ÿ“ฑ Responsive Design: Optimized mobile and desktop experience
  • ๐Ÿฉต Fanac Culture: Features specifically designed for fannish activities

๐Ÿงฑ Architecture

Tech Stack

Layer Technology Purpose
Frontend Next.js 14.2.16 + TypeScript 5.0 + App Router Modern React app with server-side rendering
Blockchain Lens Protocol + Grove Storage Decentralized content storage and social graph
Web3 Integration Wagmi v2.15 + Viem v2.29 + ConnectKit Wallet connection and blockchain interaction
State Management Zustand 5.0 + TanStack Query v5.75 Application state and server data management
UI Components TailwindCSS 3.4 + Radix UI + shadcn/ui + Mantine UI Component library and design system
Internationalization next-intl 4.3 Multi-language support
Real-time Communication XMTP React SDK messaging
Theme System next-themes 0.4 + Mantine 8.2 Dark/light theme switching

๐ŸŽฎ User Guide

1. Connect Wallet

Click the "Connect Wallet" button in the top right corner. Supports mail-login or and other major wallets.

2. Create Content

  • Navigate to "Upload" button
  • Use the text editor to edit content
  • Add images, tags, and descriptions
  • Publish to on-chain storage

3. Discover Content

  • Browse popular content on home page
  • Use tags to filter content of interest
  • Follow favorite creators
  • Interact with content (like, comment, share)

4. Manage Profile

  • Edit profile and avatar
  • View creation history
  • Manage follow list
  • Configure personal preferences

๐Ÿ“ Project Structure

Arctica/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ app/                          # Next.js App Router pages
โ”‚   โ”‚   โ”œโ”€โ”€ [locale]/                # Internationalized routes
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ about/               # About page
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ feed/                # Home page
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ profile/             # User profile
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ p/[postid]/          # Post details
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ u/[user]/            # User profile pages
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ what-is-chip/        # onchain explanation page
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ClientLayout.tsx     # Client-side layout
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ layout.tsx           # Root layout
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ page.tsx             # Home page
โ”‚   โ”‚   โ”œโ”€โ”€ Web3Provider.tsx         # Web3 context provider
โ”‚   โ”‚   โ”œโ”€โ”€ globals.css              # Global styles
โ”‚   โ”‚   โ”œโ”€โ”€ manifest.json            # PWA manifest
โ”‚   โ”‚   โ””โ”€โ”€ favicon.ico              # Site favicon
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ auth/                    # Authentication components
โ”‚   โ”‚   โ”œโ”€โ”€ comment/                 # Comment system
โ”‚   โ”‚   โ”œโ”€โ”€ dialogs/                 # Dialog components
โ”‚   โ”‚   โ”œโ”€โ”€ editer/                  # Rich text editor
โ”‚   โ”‚   โ”œโ”€โ”€ feed/                    # Feed components
โ”‚   โ”‚   โ”œโ”€โ”€ footer.tsx               # Site footer
โ”‚   โ”‚   โ”œโ”€โ”€ global-modals.tsx        # Global modal components
โ”‚   โ”‚   โ”œโ”€โ”€ header.tsx               # Site header
โ”‚   โ”‚   โ”œโ”€โ”€ home/                    # Home page components
โ”‚   โ”‚   โ”œโ”€โ”€ loading.tsx              # Loading components
โ”‚   โ”‚   โ”œโ”€โ”€ post/                    # Post-related components
โ”‚   โ”‚   โ”œโ”€โ”€ providers/               # Context providers
โ”‚   โ”‚   โ”œโ”€โ”€ search/                  # Search functionality
โ”‚   โ”‚   โ”œโ”€โ”€ token-id-display.tsx     # Token ID display component
โ”‚   โ”‚   โ”œโ”€โ”€ ui/                      # Reusable UI components
โ”‚   โ”‚   โ”œโ”€โ”€ user/                    # User-related components
โ”‚   โ”‚   โ””โ”€โ”€ user-avatar.tsx          # User avatar component
โ”‚   โ”œโ”€โ”€ contexts/                    # React contexts
โ”‚   โ”œโ”€โ”€ hooks/                       # Custom React hooks
โ”‚   โ”œโ”€โ”€ i18n/                        # Internationalization config
โ”‚   โ”œโ”€โ”€ lib/                         # Utility libraries and config
โ”‚   โ”œโ”€โ”€ middleware.ts                # Next.js middleware
โ”‚   โ”œโ”€โ”€ stores/                      # State management
โ”‚   โ”œโ”€โ”€ styles/                      # Additional styles
โ”‚   โ”œโ”€โ”€ types/                       # TypeScript type definitions
โ”‚   โ””โ”€โ”€ utils/                       # Utility functions
โ”œโ”€โ”€ messages/                        # Internationalization messages
โ”œโ”€โ”€ public/                          # Static assets
โ”œโ”€โ”€ txt/                            # Documentation and config
โ”œโ”€โ”€ components.json                  # shadcn/ui configuration
โ”œโ”€โ”€ next.config.mjs                  # Next.js configuration
โ”œโ”€โ”€ package.json                     # Project dependencies
โ”œโ”€โ”€ postcss.config.mjs               # PostCSS configuration
โ”œโ”€โ”€ tailwind.config.ts               # Tailwind CSS configuration
โ”œโ”€โ”€ tsconfig.json                    # TypeScript configuration
โ””โ”€โ”€ README.md

๐Ÿ‘พ Quick Start

Prerequisites

  • Node.js 22+ and pnpm 9.7+
  • Git version control

Installation

# Clone repository
git clone https://github.com/fae-foundation/app.git
cd app

# Install dependencies
pnpm install

# Start development server
pnpm dev

Visit http://localhost:3000 to view the application.

Environment Configuration

# Copy environment template
cp .env.example .env.local

# Configure environment variables
# .env.local
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
NEXT_PUBLIC_ALCHEMY_ID=kkkkkkkkkkkkkkkkkkkkk

NEXT_PUBLIC_ENVIRONMENT=development

NEXT_PUBLIC_APP_ADDRESS_TESTNET=0xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD 

LENS_API_KEY_TESTNET=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 

๐Ÿ”ง Development Scripts

# Development
pnpm dev                          # Start development server
pnpm build                        # Build production version
pnpm start                        # Start production server
pnpm lint                         # Code linting

# Type checking
pnpm type-check                   # TypeScript type checking

# Code formatting
pnpm format                       # Code formatting
pnpm format:check                 # Check code format

๐ŸŒ Multilingual Support

Arctica currently supports the following languages:

  • ๐Ÿ‡บ๐Ÿ‡ธ English
  • ๐Ÿ‡จ๐Ÿ‡ณ Chinese Simplified

Language switching is available in the language selector at the left of the page.

๐Ÿค Contributing

We welcome community contributions! Please see our Contributing Guide for detailed information on how to get started.

๐Ÿ›ฃ๏ธ todo

For detailed todo items, please see todos.md.

๐Ÿ“„ License

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

๐Ÿ•Š๏ธ Support & Contact

โญ If this project helps you, please give us a Star!

Made with ๐Ÿฉต by the FAE Foundation

About

Arctica: an easy-to-use portal to ship and preserve your fanworks onchain.

Resources

License

Contributing

Stars

Watchers

Forks

Contributors 7