diff --git a/README.md b/README.md index 19dc7c4..cc96158 100644 --- a/README.md +++ b/README.md @@ -147,8 +147,8 @@ Tests are located in the backend's `src/__tests__` directory. Run them using `bu For detailed information about configuration, submission process, and usage, please refer to our documentation: -- [Configuration Guide](./docs/docs/developers/configuration.md): Feed setup, plugins, and system configuration -- [User Guide](./docs/docs/user-guides/social_integration.md): How to submit and moderate content +- [Configuration Guide](./docs/docs/developers/configuration): Feed setup, plugins, and system configuration +- [User Guide](./docs/docs/user-guides/curation): How to submit and moderate content - [Developer Guide](./docs/docs/developers/): Technical documentation for developers ## Contributing diff --git a/backend/package.json b/backend/package.json index fab0e1e..e5a0a49 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,5 +1,5 @@ { - "name": "backend", + "name": "@curatedotfun/backend", "version": "0.0.1", "packageManager": "bun@1.0.27", "type": "module", diff --git a/docs/blog/2021-08-01-mdx-blog-post.mdx b/docs/blog/2021-08-01-mdx-blog-post.mdx deleted file mode 100644 index b6dfbec..0000000 --- a/docs/blog/2021-08-01-mdx-blog-post.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -slug: mdx-blog-post -title: MDX Blog Post -authors: [plugrel] -tags: [docusaurus] ---- - -Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/). - -:::tip - -Use the power of React to create interactive blog posts. - -::: - -{/* truncate */} - -For example, use JSX to create an interactive button: - -```js - -``` - - diff --git a/docs/blog/2024-08-26-welcome/docusaurus-plushie-banner.jpeg b/docs/blog/2024-08-26-welcome/docusaurus-plushie-banner.jpeg deleted file mode 100644 index 11bda09..0000000 Binary files a/docs/blog/2024-08-26-welcome/docusaurus-plushie-banner.jpeg and /dev/null differ diff --git a/docs/blog/2024-08-26-welcome/index.md b/docs/blog/2024-08-26-welcome/index.md deleted file mode 100644 index fd035dd..0000000 --- a/docs/blog/2024-08-26-welcome/index.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -slug: welcome -title: Welcome to curate.fun -authors: [plugrel] -tags: [contract, factory, curate] ---- - -# Welcome to curate.fun - -Curate news directly on socials and turn feeds into regular content. - diff --git a/docs/blog/authors.yml b/docs/blog/authors.yml deleted file mode 100644 index 71cfae5..0000000 --- a/docs/blog/authors.yml +++ /dev/null @@ -1,10 +0,0 @@ -plugrel: - name: Plugrel - title: Core Contributor at Potlock - url: https://github.com/codingshot - image_url: https://github.com/codingshot.png - page: true - socials: - x: plugrel - github: codingshot - diff --git a/docs/blog/tags.yml b/docs/blog/tags.yml deleted file mode 100644 index 638fba6..0000000 --- a/docs/blog/tags.yml +++ /dev/null @@ -1,34 +0,0 @@ -facebook: - label: Facebook - permalink: /facebook - description: Facebook tag description - -hello: - label: Hello - permalink: /hello - description: Hello tag description - -docusaurus: - label: Docusaurus - permalink: /docusaurus - description: Posts related to Docusaurus features and functionality - -hola: - label: Hola - permalink: /hola - description: Hola tag description - -referral-system: - label: Referral System - permalink: /referral-system - description: Documentation and information about the Referral System API - -smart-contracts: - label: Smart Contracts - permalink: /smart-contracts - description: Topics related to blockchain smart contracts - -api-documentation: - label: API Documentation - permalink: /api-documentation - description: Detailed explanations of API endpoints and structures diff --git a/docs/docs/developers/configuration.md b/docs/docs/developers/configuration.md index 9894acf..9bfc10b 100644 --- a/docs/docs/developers/configuration.md +++ b/docs/docs/developers/configuration.md @@ -1,28 +1,33 @@ --- -sidebar_position: 4 +sidebar_position: 1 --- -# Configuration +# ⚙️ Configuration -The application is configured through a `curate.config.json` file that defines global settings, plugins, and feed configurations. +Configure your curate.fun instance through the `curate.config.json` file ⚡ -## Structure +## 🏗️ Structure -### Global Settings +### 🌍 Global Settings ```json { "global": { - "botId": "curation_bot", // handle for twitter bot + "botId": "curatedotfun", // @handle for twitter bot "defaultStatus": "pending", - "maxSubmissionsPerUser": 5 + "maxDailySubmissionsPerUser": 15, + "blacklist": { // ignore submissions according to inbound platform + "twitter": [ + "blocked_id" + ] + } } } ``` -### Plugins +### 🔌 Plugins -Plugins are external modules that provide transformation or distribution capabilities: +Plugins extend functionality with transformations and distribution capabilities: ```json { @@ -31,6 +36,10 @@ Plugins are external modules that provide transformation or distribution capabil "type": "distributor", "url": "./external/telegram" }, + "@curatedotfun/rss": { + "type": "distributor", + "url": "./external/rss" + }, "@curatedotfun/gpt-transform": { "type": "transformer", "url": "./external/gpt-transform" @@ -39,9 +48,9 @@ Plugins are external modules that provide transformation or distribution capabil } ``` -### Feeds +### 📡 Feeds -Each feed represents a distinct content stream with its own configuration: +Each feed represents a distinct content stream: ```json { @@ -52,7 +61,7 @@ Each feed represents a distinct content stream with its own configuration: "description": "Example feed description", "moderation": { "approvers": { - "twitter": ["approver1", "approver2"] // twitter handle, without @ + "twitter": ["approver1", "approver2"] // twitter handles, without @ } }, "outputs": { @@ -64,18 +73,25 @@ Each feed represents a distinct content stream with its own configuration: "prompt": "Format this update..." } }, - "distribute": [ // Optional (can be processed later, with /api/feed/{feedId}/process) + "distribute": [ // Optional (can be processed later, with /api/feed/:feedId/process) { "plugin": "@curatedotfun/telegram", "config": { "botToken": "{TELEGRAM_BOT_TOKEN}", "channelId": "{TELEGRAM_CHANNEL_ID}" } + }, + { + "plugin": "@curatedotfun/rss", + "config": { + "title": "Feed Title", + "path": "./public/feed.xml" + } } ] }, "recap": { - "enabled": true, + "enabled": false, "schedule": "0 0 * * *", "transform": { // Required to summarize "plugin": "@curatedotfun/gpt-transform", @@ -83,7 +99,7 @@ Each feed represents a distinct content stream with its own configuration: "prompt": "./prompts/recap.txt" } }, - "distribute": [ // Required + "distribute": [ // Required for recap { "plugin": "@curatedotfun/telegram", "config": { @@ -99,15 +115,15 @@ Each feed represents a distinct content stream with its own configuration: } ``` -## Stream Configuration +## 🔄 Stream Configuration -A stream means that content will be distributed on approval. The stream output configuration itself is optional and has several optional components: +Stream configuration controls real-time content distribution: ```typescript outputs: { stream?: { enabled: boolean; - transform?: { // Optional transformation to content before distribution + transform?: { // Optional transformation plugin: string; config: { prompt: string; @@ -125,34 +141,34 @@ outputs: { When `stream` is enabled: -- If `transform` is not provided, content will be distributed as-is -- If `distribute` is not provided, approved submissions will remain in the submissions feed table (queue) until: - - They are distributed (if distribution is added later) - - The recap schedule completes (if a recap is configured) - - They are manually removed +- 🔄 Without `transform`, content is distributed as-is +- 📥 Without `distribute`, submissions stay in queue until: + - ✅ Distribution is added later (/api/feeds/:feedId/process) + - 📅 Recap schedule completes + - 🗑️ Manual removal -This queue behavior is particularly useful when you want to: +This queue system helps you: -- Collect approved submissions without immediate distribution -- Add distribution channels later -- Use submissions only in recaps +- 📦 Collect submissions for later +- 🔌 Add distribution channels flexibly +- 📝 Use content in recaps only -## Recap Configuration +## 📅 Recap Configuration -A recap means that content within the specified time frame will be summarized (transformed) and then distributed. The recap output configuration is optional but when provided requires certain fields: +Recap configuration handles periodic content summaries: ```typescript outputs: { recap?: { enabled: boolean; schedule: string; // Cron expression - transform: { // Required for recap + transform: { // Required plugin: string; config: { prompt: string; }; }; - distribute: [ // Required for recap + distribute: [ // Required { plugin: string; config: Record; @@ -162,9 +178,9 @@ outputs: { } ``` -Note that unlike stream configuration: +Key differences from stream configuration: -- `transform` is required for recap (content must be summarized) -- `distribute` is required for recap (summarized content must be distributed) +- 🔄 `transform` is required (content must be summarized) +- 📢 `distribute` is required (summaries must be distributed) -Messages included in a recap will be removed from the submissions feed table after the recap is generated and distributed. +📝 Note: Messages in a recap are removed from the queue after distribution. diff --git a/docs/docs/developers/contracts.md b/docs/docs/developers/contracts.md deleted file mode 100644 index b4cc633..0000000 --- a/docs/docs/developers/contracts.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Content Generator - -Add your own custom feed - - -# Configure your own podcast with Eleven Labs - - -# Configure your own autonmous blog - -Soon - -# Configure your own autonomous video - -SOon \ No newline at end of file diff --git a/docs/docs/developers/deployment.md b/docs/docs/developers/deployment.md index 84c84c7..030a2c1 100644 --- a/docs/docs/developers/deployment.md +++ b/docs/docs/developers/deployment.md @@ -1,31 +1,31 @@ --- -sidebar_position: 5 +sidebar_position: 2 --- -# Deployment +# 🚀 Deployment -This guide covers deploying the application to various environments. +Deploy your curate.fun instance to production ⚡ -## Deploying to Fly.io +## 🌥️ Deploying to Fly.io The backend service can be deployed to Fly.io with SQLite support. -### Prerequisites +### 📋 Prerequisites Install the Fly CLI: ```bash -# macOS +# 🍎 macOS brew install flyctl -# Windows +# 🪟 Windows powershell -Command "iwr https://fly.io/install.ps1 -useb | iex" -# Linux +# 🐧 Linux curl -L https://fly.io/install.sh | sh ``` -### Authentication +### 🔑 Authentication Sign up and authenticate with Fly.io: @@ -35,98 +35,102 @@ fly auth signup fly auth login ``` -### Deployment Steps +### 🛫 Deployment Steps -1. Initialize your Fly.io application: +1. 🎬 Initialize your Fly.io application: ```bash bun run deploy:init ``` -This will create the Fly App, the LiteFS volume (see [LiteFS Spreedrun](https://fly.io/docs/litefs/speedrun/) for more information), and attach Consul for LiteFS cluster management (this sets the FLY_CONSUL_URL secret for the app, which is required for LitefS leases) +This will: -2. The app will crash the first time, because your Fly App needs environment variables set (sorry, you have to do this manually): +- 📦 Create the Fly App +- 💾 Set up LiteFS volume ([LiteFS Speedrun](https://fly.io/docs/litefs/speedrun/)) +- 🔄 Attach Consul for LiteFS cluster management + +2. ⚙️ Configure environment variables: ```bash +# 🐦 Twitter Authentication fly secrets set TWITTER_USERNAME=your_twitter_username fly secrets set TWITTER_PASSWORD=your_twitter_password fly secrets set TWITTER_EMAIL=your_twitter_email -``` - -For distribution services, these will hydrate the curate.config.json: -```bash -# Telegram +# 📢 Distribution Services fly secrets set TELEGRAM_BOT_TOKEN=your_bot_token fly secrets set TELEGRAM_CHANNEL_ID=your_channel_id ``` -2. Then redeploy the application. Use this command for any future deployments: +3. 🚀 Deploy the application: ```bash bun run deploy ``` -### Configuration - -The deployment includes: +### 🏗️ Architecture -- Distributed SQLite using LiteFS -- Automatic file replication across instances -- High availability with minimum 2 machines -- Primary/replica configuration using Consul -- HTTPS enabled by default +- ✨ Distributed SQLite using LiteFS +- 🔄 Automatic file replication across instances +- 🎯 Primary/replica configuration using Consul +- 🔒 HTTPS enabled by default -#### Architecture +#### 🔍 Details -- Primary instance (LAX region) handles write operations -- Replicas automatically sync data from primary -- Consul manages primary/replica coordination -- Automatic failover if primary becomes unavailable +- 📍 Primary instance (LAX region) handles write operations +- 🔄 Replicas automatically sync data from primary +- 🎛️ Consul manages primary/replica coordination +- ⚡ Automatic failover if primary becomes unavailable -#### Key Files +#### 📁 Key Files - `fly.toml`: Main Fly.io configuration - `litefs.yml`: LiteFS configuration - `Dockerfile`: Container and LiteFS setup -### Monitoring +### 📊 Monitoring Monitor your deployment: ```bash -# View deployment status +# 👀 View deployment status fly status -# View logs +# 📝 View logs fly logs -# Access the Fly.io dashboard +# 🖥️ Access dashboard fly dashboard ``` -### Troubleshooting +### 🔧 Troubleshooting Common issues and solutions: -1. **Database Connection Issues** - - Check LiteFS mount status: `fly ssh console -C "ls -la /litefs"` - - Verify Consul connection: `fly consul status` - - Check primary/replica status: `fly logs` - -2. **File Replication Issues** - - Verify LiteFS FUSE mount: `fly ssh console -C "mount | grep litefs"` - - Check file permissions: `fly ssh console -C "ls -la /src"` - - Monitor LiteFS logs: `fly logs --level debug` - -3. **Memory/CPU Issues** - - Monitor resource usage: `fly status` - - Check machine distribution: `fly scale show` - - Adjust VM configuration in fly.toml if needed - -4. **Primary/Replica Issues** - - Verify Consul health: `fly consul status` - - Check region configuration: `fly regions list` - - Monitor primary elections: `fly logs --level info` - -For more help, consult the [Fly.io documentation](https://fly.io/docs/) or join their [community Discord](https://fly.io/discord). +1. **🗄️ Container issues** + + ```bash + # Explore container + fly ssh console + + # Verify Consul + fly consul status + + # Check status + fly logs + ``` + +3. **💻 Scale up or downtown** + + ```bash + # Increase count (# is number of machines) + fly scale count # + + # Check distribution + fly scale show + ``` + +📚 For more help: + +- [Fly.io Documentation](https://fly.io/docs/) +- [Community Discord](https://fly.io/discord) diff --git a/docs/docs/developers/indexer.mdx b/docs/docs/developers/indexer.mdx deleted file mode 100644 index bba60b7..0000000 --- a/docs/docs/developers/indexer.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -sidebar_position: 2 ---- - -# 📊 Indexer - -Build your own GraphQL Indexer or use our existing GraphQL Indexer. - -## What is GraphQL? - -[GraphQL](https://graphql.org/) is a query language and runtime for APIs that allows clients to request exactly the data they need. Unlike traditional REST APIs, GraphQL provides a more efficient, powerful, and flexible approach to data fetching and manipulation. With GraphQL, you can: - -- Request multiple resources in a single query -- Specify precisely the data you want to retrieve -- Receive predictable results that match your query structure -- Evolve your API without versioning - -## 🔍 Available Queries -Coming soon - -## 🔄 Mutations -Coming soon - -## 📈 Subscriptions -Coming soon - -## 🚀 Getting Started -Coming soon - -## 📖 Examples -Coming soon - -## 🛠️ Self-Hosting Guide -Coming soon - - diff --git a/docs/docs/developers/js.mdx b/docs/docs/developers/js.mdx deleted file mode 100644 index 86a0ff4..0000000 --- a/docs/docs/developers/js.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -sidebar_position: 3 ---- - -# JavaScript SDK - -Use our JavaScript SDK to build this into a script or a dApp. - -## Installation -Coming soon - -## Usage -Coming soon - -## API Reference -Coming soon - -## Examples -Coming soon - - diff --git a/docs/docs/developers/plugins.md b/docs/docs/developers/plugins.md new file mode 100644 index 0000000..d727304 --- /dev/null +++ b/docs/docs/developers/plugins.md @@ -0,0 +1,71 @@ +--- +sidebar_position: 3 +--- + +# 🎨 Content Generation + +Learn how to extend curate.fun with custom plugins ⚡ + +## 🔌 Custom Feed Integration + +Create your own custom feed by implementing the feed interface: + +```typescript +// Coming soon... +``` + +## 🎙️ Podcast Generation + +Configure autonomous podcast generation with Eleven Labs: + +1. 🔑 Set up Eleven Labs API credentials +2. 🎯 Configure voice and style settings +3. 🔄 Connect to your content feed +4. 📢 Set up distribution channels + +```typescript +// Coming soon... +``` + +## 📝 Blog Generation + +Create an autonomous blog that generates content from your feeds: + +1. 🤖 Configure AI writing parameters +2. 📊 Set up content structure +3. 🎯 Define publishing rules +4. 🌐 Configure hosting and distribution + +```typescript +// Coming soon... +``` + +## 🎥 Video Generation + +Set up autonomous video content generation: + +1. 🎬 Configure video style and format +2. 🗣️ Set up voice-over integration +3. 🎨 Define visual templates +4. 📺 Configure publishing channels + +```typescript +// Coming soon... +``` + +## 🔄 Custom Transformers + +Build your own content transformers: + +1. 🛠️ Implement the transformer interface +2. 🔌 Configure input/output formats +3. 🎯 Define transformation rules +4. 📦 Package and distribute + +```typescript +// Coming soon... +``` + +:::note +This section is under active development. Check back soon for detailed implementation guides and examples! +::: diff --git a/docs/docs/getting-started.md b/docs/docs/getting-started.md new file mode 100644 index 0000000..ee2a167 --- /dev/null +++ b/docs/docs/getting-started.md @@ -0,0 +1,25 @@ +--- +sidebar_position: 2 +--- + +# 🚀 Getting Started + +Choose your path to get started with curate.fun ⚡ + +## 👥 For Curators + +If you want to submit and curate content: + +1. 🎯 Head to the [User Guide](./user-guides/curation) +2. 🔗 Learn how to submit content and moderate feeds +3. 🌟 Apply to become a curator for specific feeds + +## 🛠️ For Developers + +If you want to build and customize feeds: + +1. 📖 Start with the [Configuration Guide](./developers/configuration.md) +2. 🚀 Learn about [Deployment](./developers/deployment.md) +3. 🔌 Explore [Plugin Development](./developers/plugins.md) + +Choose your guide above to begin your journey with curate.fun! ⚡ diff --git a/docs/docs/intro.md b/docs/docs/intro.md index 61736e6..623c31d 100644 --- a/docs/docs/intro.md +++ b/docs/docs/intro.md @@ -2,49 +2,30 @@ sidebar_position: 1 --- -# 🎮 curate.fun Overview +# 🎮 curate.fun -Discover **curate.fun in less than 5 minutes** ⚡ +Welcome to **curate.fun** - your platform for AI-powered content curation ⚡ -## 🎯 Overview +## ✨ Key Features -curate.fun is a platform designed to curate news directly from social media platforms and transform these feeds into regular content like blogs and articles. It provides tools for creating and managing content streams based on social signals. - -### ✨ Key Features: -1. **🤖 Automated Curation**: Deploy agents that curate content based on customizable criteria. -2. **🐦 Social Integration**: Direct integration with social platforms for content sourcing and community feedback. -3. **👥 Multi-reviewer System**: Set up multiple reviewers for content feeds. -4. **🧠 Built on [Eliza](https://github.com/ai16z/eliza)**: Leveraging the Eliza Framework for robust AI capabilities. -5. **📤 Multi-format Publishing**: Publish curated content in various formats. - -## 🤔 Problem Statement - -curate.fun addresses several key issues in the content curation ecosystem: - -1. **⏳ Content Curation Inefficiency**: Traditional content curation is slow and resource-intensive. -2. **🔗 Limited Social Integration**: Current systems lack direct integration with social platforms. -3. **👤 Centralized Decision Making**: Most curation programs rely on manual, centralized evaluation. -4. **📈 Scale Limitations**: Human-operated curation programs struggle to scale effectively. +1. **🤖 Automated Curation**: Deploy agents that curate content based on customizable criteria +2. **🐦 Social Integration**: Integrate directly with social platforms for content sourcing and community feedback +3. **👥 Multi-reviewer System**: Set up multiple reviewers for content feeds +4. **🔌 Plugin Framework**: Build and configure plugins to add inbounds, transformations, and distribution channels +5. **📤 Multi-format Publishing**: Publish curated content in various formats ## 🎯 Use Cases -- 🤖 Autonomous content curation. -- 🌟 Influencer tokens. -- 🏆 Rewards and contests. -- 📱 Social-signal based evaluation. -- 🤝 Community-driven content allocation. -- ⛓️ Cross-platform content programs. -- 🎙️ Autonomous podcasts and content creation. - -## 🚀 Getting Started - -To start using curate.fun, you'll need to: -1. 🐦 Submit an Agent. - -# Contributing Guidelines - -## 🛠️ Technical Stack +- **📚 Content Curation**: Automate the collection and curation of content from social media +- **🤝 Community Engagement**: Create community-driven content programs +- **📰 News Aggregation**: Build specialized news feeds for specific topics or communities +- **🌐 Content Distribution**: Automatically distribute curated content across multiple platforms +- **🧠 AI Transformation**: Transform social content into structured formats like blogs or newsletters ## 🌐 Community Channels -- 📚 [GitHub](https://github.com/potlock/curatedotfun) +- 📱 [Website](https://curate.fun) +- 📦 [GitHub](https://github.com/potlock/curatedotfun) +- 🐦 [Twitter](https://twitter.com/curatedotfun) + +Ready to start? Check out our [Quick Start Guide](./getting-started.md) ⚡ diff --git a/docs/docs/user-guides/curation.md b/docs/docs/user-guides/curation.md new file mode 100644 index 0000000..a3d2ef1 --- /dev/null +++ b/docs/docs/user-guides/curation.md @@ -0,0 +1,56 @@ +--- +sidebar_position: 1 +--- + +# 🔗 Curation + +Learn how to submit and curate content through social media integrations ⚡ + +## 📝 Submitting Content + +To submit content to a feed: + +1. 🎯 Post `!submit @curatedotfun` with your content +2. 🏷️ Include the `#hashtag` for your target feed (e.g., `#grants`, `#ethereum`) +3. ⏳ Wait for curator approval +4. ✅ Receive confirmation with a link to view your submission + +## 👥 Curator Actions + +If you're a curator, you can moderate submissions by: + +1. 🔍 Find the submission in your feed +2. ✅ Reply with `!approve` to accept the submission +3. ❌ Reply with `!reject` to decline (optional) + +## 🎯 Feed Hashtags + +Each feed has a unique hashtag identifier: + +- 💸 `#grants` - Blockchain grant updates +- ⛓️ `#ethereum` - Ethereum ecosystem updates +- 🌐 `#near` - NEAR Protocol updates +- 🤖 `#ai` - AI updates +- And more... + +Check the [app dashboard](https://app.curate.fun) for a complete list of available feeds. + +## 🌟 Becoming a Curator + +Want to help curate content? You can apply to be a curator: + +1. 📝 Create a post with `!apply @curatedotfun #feedname` +2. ✍️ Include why you want to be a curator +3. ⏳ Wait for review from the feed administrators + +Example: +``` +!apply @curatedotfun #ethereum I want to be a curator because I've been active in the Ethereum ecosystem for 3 years and want to help surface quality content... +``` + +## ⚡ Tips + +- 📌 Follow `@curatedotfun` to stay updated on new feeds and features +- 🔄 You can submit to multiple feeds by using multiple hashtags +- 📊 Track your submissions in the [app dashboard](https://app.curate.fun) +- 💬 Join our community channels for support diff --git a/docs/docs/user-guides/social_integration.md b/docs/docs/user-guides/social_integration.md deleted file mode 100644 index 6083680..0000000 --- a/docs/docs/user-guides/social_integration.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 1 ---- - -# How to Submit -To submit, just tag `@curatedotfun` with the `#hashtag` for the feed you want to submit to. - -Then, wait for a curator (check the curator list in feed settings) to click `#approve` as a reply to your post or from a different channel. - -You will then receive a message confirming that your post was successfully submitted, along with a link to the app with that reference in the feed. - diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index c16aeb9..8fe486d 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -74,7 +74,19 @@ const config: Config = { type: "docSidebar", sidebarId: "tutorialSidebar", position: "left", - label: "Tutorial", + label: "📖 Overview", + }, + { + type: "docSidebar", + sidebarId: "userGuideSidebar", + position: "left", + label: "👥 User Guide", + }, + { + type: "docSidebar", + sidebarId: "developerGuideSidebar", + position: "left", + label: "🛠️ Developer Guide", }, { href: "https://curate.fun", @@ -82,7 +94,7 @@ const config: Config = { position: "right", }, { - href: "https://x.com/potlock_", + href: "https://x.com/curatedotfun", label: "X", position: "right", }, @@ -100,9 +112,17 @@ const config: Config = { title: "📚 Docs", items: [ { - label: "🚀 Tutorial", + label: "📖 Overview", to: "/docs/intro", }, + { + label: "👥 User Guide", + to: "/docs/user-guides/curation", + }, + { + label: "🛠️ Developer Guide", + to: "/docs/developers/configuration", + }, ], }, { @@ -110,11 +130,11 @@ const config: Config = { items: [ { label: "💬 Telegram", - href: "https://t.me/", + href: "https://t.me/+UM70lvMnofk3YTVh", }, { label: "🐦 Twitter", - href: "https://twitter.com/potlock_", + href: "https://twitter.com/curatedotfun", }, ], }, diff --git a/docs/package.json b/docs/package.json index 9ee0b21..d629cfd 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,5 +1,5 @@ { - "name": "refer-docs", + "name": "@curatedotfun/docs", "version": "0.0.0", "private": true, "scripts": { diff --git a/docs/sidebars.ts b/docs/sidebars.ts index 9217257..1f4196b 100644 --- a/docs/sidebars.ts +++ b/docs/sidebars.ts @@ -1,31 +1,37 @@ import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ const sidebars: SidebarsConfig = { - // By default, Docusaurus generates a sidebar from the docs folder structure - tutorialSidebar: [{ type: "autogenerated", dirName: "." }], - - // But you can create a sidebar manually - /* tutorialSidebar: [ - 'intro', - 'hello', { - type: 'category', - label: 'Tutorial', - items: ['user-guides/create-a-document'], + type: "doc", + id: "intro", + label: "Introduction", + }, + { + type: "doc", + id: "getting-started", + label: "Getting Started", + }, + ], + userGuideSidebar: [ + { + type: "doc", + id: "user-guides/curation", + label: "Curation", + }, + ], + developerGuideSidebar: [ + { + type: "category", + label: "Setup", + items: ["developers/configuration", "developers/deployment"], + }, + { + type: "category", + label: "Integration", + items: ["developers/plugins"], }, ], - */ }; export default sidebars; diff --git a/docs/src/components/HomepageFeatures/styles.module.css b/docs/src/components/HomepageFeatures/styles.module.css index f599885..22be6c7 100644 --- a/docs/src/components/HomepageFeatures/styles.module.css +++ b/docs/src/components/HomepageFeatures/styles.module.css @@ -1,6 +1,8 @@ .features { display: flex; align-items: center; + justify-content: center; + flex-wrap: wrap; padding: 2rem 0; width: 100%; } diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css index 3119752..901a84e 100644 --- a/docs/src/css/custom.css +++ b/docs/src/css/custom.css @@ -15,7 +15,7 @@ --ifm-color-primary-lightest: #0ca0ff; --ifm-code-font-size: 95%; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); - --ifm-font-family-base: 'Londrina Solid', sans-serif; + --ifm-font-family-base: 'Roboto', sans-serif; --ifm-font-family-heading: 'Londrina Solid', sans-serif; } @@ -31,7 +31,7 @@ --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); } -@import url('https://fonts.googleapis.com/css2?family=Londrina+Solid:wght@400;700&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Londrina+Solid:wght@400;700&family=Roboto:wght@400;500;700&display=swap'); h1, h2, h3, h4, h5, h6, .navbar__title, .navbar__logo { font-family: 'Londrina Solid', sans-serif; diff --git a/docs/src/pages/index.tsx b/docs/src/pages/index.tsx index adc5f1d..d41f774 100644 --- a/docs/src/pages/index.tsx +++ b/docs/src/pages/index.tsx @@ -18,7 +18,10 @@ function HomepageHeader() {

{siteConfig.tagline}

- + Start Curating