A modern, cross-platform social media scheduling tool built with Expo, React Native, TypeScript, and a Node.js/Express backend in a monorepo structure.
Schedio is a Buffer-style social media scheduling platform that lets you compose, schedule, and publish posts across multiple social networks from a single dashboard. Built with Expo, React Native, and a Node.js backend in a modern monorepo structure, it supports file-based routing, multi-language support, and a responsive UI that works on web, iOS, and Android.
- Multi-Platform Publishing — Connect Twitter/X, Instagram, Facebook, LinkedIn, Mastodon and schedule posts across all of them
- Post Queue & Calendar — Visual calendar and drag-and-drop queue for managing scheduled content
- Analytics Dashboard — Track post performance, engagement metrics, and audience growth
- Post Composer — Rich composer with media attachments, polls, location, threads, and article content
- Publishing Schedules — Create custom time slot schedules for automatic posting
- Draft Management — Save and organize drafts for later
- Responsive Design — Sidebar on desktop, bottom bar on mobile — works everywhere
- Theming — Light/dark/system modes with multiple color themes
- Multi-Language — English, Spanish, Italian supported via i18next
This is a monorepo using npm workspaces:
/
├── packages/
│ ├── frontend/ # Expo React Native app
│ │ ├── app/ # Screens and routing
│ │ │ ├── (main)/ # Main app screens
│ │ │ │ ├── index.tsx # Dashboard
│ │ │ │ ├── compose.tsx # Post composer
│ │ │ │ ├── queue.tsx # Queue / calendar
│ │ │ │ ├── analytics.tsx # Analytics
│ │ │ │ ├── accounts.tsx # Social accounts
│ │ │ │ ├── settings/ # Settings screens
│ │ │ │ └── post/[id].tsx # Post detail/edit
│ │ │ ├── (auth)/ # Authentication screens
│ │ │ └── ...
│ │ ├── components/ # UI components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── stores/ # State management (Zustand)
│ │ ├── styles/ # Theme and color system
│ │ ├── locales/ # i18n translation files
│ │ └── utils/ # Utility functions
│ ├── backend/ # Node.js/Express API server
│ │ └── src/
│ │ ├── models/ # MongoDB models (Post, SocialAccount, etc.)
│ │ ├── routes/ # API routes (posts, accounts, analytics, queue)
│ │ ├── middleware/ # Express middleware
│ │ └── utils/ # Utility functions
│ └── shared-types/ # Shared TypeScript types
├── package.json # Root package.json with workspaces
└── tsconfig.json # Root TypeScript config
- Node.js 18+ and npm 8+
- MongoDB instance
- Expo CLI for mobile development
-
Clone the repository
git clone https://github.com/OxyHQ/Schedio.git cd Schedio -
Install all dependencies
npm run install:all
-
Set up environment variables — See backend and frontend READMEs for required env vars.
npm run dev# Frontend only
npm run dev:frontend
# Backend only
npm run dev:backendThe frontend is an Expo React Native app that can run on:
- Web:
npm run web(ornpm run dev:frontendthen press 'w') - iOS:
npm run ios(requires macOS and Xcode) - Android:
npm run android(requires Android Studio)
npm run dev:backendnpm run dev— Start all services in development modenpm run dev:frontend— Start frontend development servernpm run dev:backend— Start backend development servernpm run build— Build all packagesnpm run build:shared-types— Build shared types packagenpm run build:frontend— Build frontend for productionnpm run build:backend— Build backend for productionnpm run test— Run tests across all packagesnpm run lint— Lint all packagesnpm run clean— Clean all build artifactsnpm run install:all— Install dependencies for all packages
npm start— Start Expo development servernpm run android— Run on Android device/emulatornpm run ios— Run on iOS simulatornpm run web— Run in web browsernpm run build-web— Build static web outputnpm run lint— Lint codebase
npm run dev— Start development server with hot reloadnpm run build— Build the projectnpm run start— Start production servernpm run lint— Lint codebase
npm run build— Build TypeScript typesnpm run dev— Watch and rebuild types
The Schedio API is a REST backend built with Express.js and TypeScript, providing endpoints for post management, social account connections, analytics, and queue management. Authentication is handled by the Oxy platform.
For detailed API information, see:
- Backend README — Complete API documentation
- Frontend README — Frontend implementation details
Contributions are welcome! Please open issues or pull requests for bug fixes, features, or improvements.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting:
npm run test && npm run lint - Submit a pull request
This project is licensed under the MIT License.