A modern Vue.js application that allows you to schedule Mastodon posts (toots) for later publication. Built with Vue 3, TypeScript, and Vite.
- 🔐 Secure OAuth authentication with Mastodon
- 📝 Compose toots with content warnings
- ⏰ Schedule toots for future publication
- 🌍 Multi-language support
- 🔒 Privacy settings (public, unlisted, private, direct)
- 📱 Responsive design
- 🎯 Real-time validation
- 📊 View and manage scheduled toots
- Vue 3 with Composition API
- TypeScript
- Vite
- Pinia for state management
- Vue Router
- date-fns for date handling
- Node.js (v20 or later recommended)
- npm (included with Node.js)
- A Mastodon account
- Clone the repository:
git clone https://github.com/YOUR_USERNAME/toots-scheduler.git
cd toots-scheduler- Install dependencies:
npm install- Copy the environment file and configure it:
cp .env.example .env- Update the
.envfile with your Mastodon instance details:
VITE_MASTODON_SERVER=https://mastodon.socialStart the development server:
npm run devBuild the application:
npm run buildPreview the production build:
npm run previewThe project follows a standard Vue.js project structure with the following key directories:
src/: Contains all the source code for the applicationassets/: Static assets like images and fontscomponents/: Vue components used throughout the applicationcomposables/: Composition API utilitiesrouter/: Vue Router configurationstores/: Pinia stores for state managementtypes/: TypeScript type definitionsutils/: Utility functions and helpers
public/: Static files that are served as-isenv.example: Example environment configuration file
- Fork and Clone: Fork the repository and clone it to your local machine.
- Install Dependencies: Run
npm installto install all required dependencies. - Configure Environment: Copy
.env.exampleto.envand update with your Mastodon instance details. - Run Development Server: Use
npm run devto start the development server. - Make Changes: Implement your changes in the appropriate files.
- Test Changes: Test your changes thoroughly to ensure they work as expected.
- Commit Changes: Commit your changes with clear, descriptive commit messages.
- Create Pull Request: Push your changes to your fork and create a pull request to the main repository.
- Follow the Airbnb JavaScript Style Guide for JavaScript/TypeScript code.
- Use Prettier for code formatting.
- Write clear, descriptive commit messages.
- Include appropriate comments in your code to explain complex logic.
- Keep functions small and focused on a single responsibility.
We welcome contributions from the community! Here are some guidelines to follow:
- Fork the Repository: Start by forking the repository to your GitHub account.
- Create a Branch: Create a new branch for your feature or bug fix.
- Make Changes: Implement your changes following the coding standards.
- Write Tests: If applicable, write tests for your changes.
- Update Documentation: Update the README or other documentation as needed.
- Submit a Pull Request: Push your changes and create a pull request to the main repository.
- Code Review: Your pull request will be reviewed by maintainers. Be prepared to make changes based on feedback.
- Merge: Once approved, your changes will be merged into the main branch.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.
- Built with Vue.js
- Powered by Mastodon API