Deploy Side App Tasks
Deploy and Host Side App Tasks with Railway
Frontend
nierdna/sa-task-frontend
Just deployed
Postgres
railwayapp-templates/postgres-ssl:17
Just deployed
/var/lib/postgresql/data
TelegramBotVerifier
nierdna/sa-task-telegram-bot-server
Just deployed
ApiServer
nierdna/sa-task-api-server
Just deployed
Deploy and Host Side App Tasks on Railway
Web3 Tasks Side App is an open-source task management platform that enables Web3 projects to quickly integrate quest/task systems into their main dApps without building from scratch. It handles social media task verification (Twitter, Telegram, Discord) and sends webhooks to your main application.
About Hosting Side App Tasks
Hosting Side App Tasks on Railway involves deploying a full-stack Next.js application with PostgreSQL database and Redis for background job processing. The application consists of three main components: an admin panel for task management, a user interface for task completion, and a server API with worker jobs for task verification. The system automatically creates users when they connect their wallets, manages OAuth connections to social platforms, verifies task completion through API calls, and sends webhook events to your main application when tasks are completed. Railway simplifies this deployment by providing managed PostgreSQL and Redis services, automatic HTTPS, and seamless environment variable management.
Common Use Cases
-
Integrate task/quest system into existing Web3 dApps without building custom infrastructure
-
Manage social media engagement tasks (Twitter likes, follows, Telegram joins, Discord memberships) with automated verification
-
Send webhook events to main applications for reward distribution, achievement tracking, and user progression
Dependencies for Side App Tasks Hosting
-
PostgreSQL Database: Required for storing users, tasks, OAuth connections, and task run records. Railway provides managed PostgreSQL that can be provisioned alongside the application.
-
Redis: Required for BullMQ background job processing (task verification, webhook sending). Railway offers managed Redis or you can use Upstash for serverless Redis.
-
OAuth Credentials: Twitter OAuth 2.0 (Client ID & Secret), Telegram Bot Token, and Discord OAuth credentials for social platform integrations.
-
Main App Webhook Configuration: Webhook URL and API key from your main application to receive task completion events.
-
JWT Secret: Secret key for user session management and authentication.
Deployment Dependencies
- Twitter Developer Portal - Register your app to get OAuth credentials
- Telegram Bot API - Create a bot via @BotFather to get bot token
- Discord Developer Portal - Create an application for Discord OAuth
Implementation Details
The application uses Next.js API routes for the backend, with the following key endpoints:
// Authentication
POST /api/auth/wallet/verify - Wallet-based authentication
GET /api/auth/twitter/login - Twitter OAuth initiation
GET /api/auth/twitter/callback - Twitter OAuth callback
// Tasks
GET /api/tasks - List available tasks
POST /api/tasks/{task_id}/verify - Verify task completion
// Admin
POST /api/admin/tasks - Create new tasks (protected)
Background workers process task verification asynchronously using BullMQ, checking social media APIs (Twitter API v2, Telegram Bot API, Discord API) to verify user actions and then sending webhook events to your main application.
Why Deploy Side App Tasks on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Side App Tasks on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
Frontend
nierdna/sa-task-frontendNEXT_PUBLIC_SOLANA_RPC_URL
NEXT_PUBLIC_TELEGRAM_BOT_USERNAME
TelegramBotVerifier
nierdna/sa-task-telegram-bot-serverTELEGRAM_BOT_TOKEN
TELEGRAM_BOT_USERNAME
ApiServer
nierdna/sa-task-api-serverJWT_SECRET
RAPID_API_KEY
ENCRYPTION_KEY
MAIN_APP_API_KEY
TWITTER_CLIENT_ID
MAIN_APP_WEBHOOK_URL
RAPID_CRAWL_TWEET_KEY
TWITTER_CLIENT_SECRET
ADMIN_WALLET_ADDRESSES
RAPID_CRAWL_TWEET_V2_KEY