Future Plans
This page outlines what’s coming next for StratusTS. We’re committed to making this framework better with each release while maintaining its simplicity and ease of use.
Development Philosophy
Section titled “Development Philosophy”Before diving into specific features, here’s what guides our development:
Keep It Simple
We won’t add features that make the framework complex or hard to learn. Every addition must earn its place by solving real problems.🧑💻
Community-Driven
Your feedback shapes our roadmap. Features with the most demand get prioritized.🤝
Backward Compatibility
We’ll maintain compatibility whenever possible. Breaking changes only happen in major versions with clear migration guides. 🔄
Quality Over Speed
We’d rather ship polished features late than rushed features on time.⏳
Short Term
Section titled “Short Term”These features are actively in development or planned for the next few releases.🚀
🚧 Dynamic Route Parameters
Section titled “🚧 Dynamic Route Parameters”Status: In Development 🛠️
Priority: High ⚡
Complete implementation of dynamic routing:
- Multiple parameters in routes (
/<userId:str>/posts/<postId:int>)✅ - Optional parameters (
/<id:*>?)🛠️ - Parameter validation and constraints✅
Why: Essential for building flexible APIs and applications.
📋 File Upload Handling
Section titled “📋 File Upload Handling”Status: In Development 🛠️
Priority: High ⚡
Native support for:
- File uploads (single and multiple)📁📤
- File size limits📏
- File type validation🔍
- Streaming large files🎥
- Integration with cloud storage☁️
Example:
// Planned APIconst uploadAvatar: ControllerType = async (question, reply) => { const { files } = await question.body(); // Process uploaded file};Why: Common requirement for modern web apps. 🌐
🚧 Middleware Support
Section titled “🚧 Middleware Support”Status: In Thought 🤔
Priority: Medium ⚖️
Add middleware layer for:
- Authentication checks 🔐
- Request logging 📝
- Rate limiting ⏳
- CORS handling 🌍
- Custom middleware 🛠️
Why: Common pattern needed for real-world applications. 💼
📋 Request Validation
Section titled “📋 Request Validation”Status: Planned 🗓️
Priority: High ⚡
Built-in validation for:
- Request body validation 📦
- Query parameter validation 🔍
- Type coercion 🔄
- Custom validators 🛠️
Example:
route.post('/users', createUser, { body: { name: { type: 'string', required: true }, email: { type: 'email', required: true }, age: { type: 'number', required: true }, },});Why: Reduce boilerplate validation code in controllers. 🔧
📋 Cookie Handling
Section titled “📋 Cookie Handling”Status: Planned 🗓️
Priority: Medium ⚖️
Improved cookie support:
- Parse cookies automatically 🍪
- Set secure cookies 🔒
- Cookie signing ✍️
- SameSite configuration 🌐
Example:
// Planned APIreply.cookie('name','value',{ domain:'', expires: new Date(/*some date*/), httpOnly: true, sameSite: 'strict', secure: true});Why: Essential for storing identities. 🔑
Medium Term
Section titled “Medium Term”Features planned for upcoming major releases. 🗓️
Authentication System
Section titled “Authentication System”Status: Research Phase 🔍
Priority: High ⚡
Built-in authentication:
- Local authentication (username/password) 🔑
- JWT token support 🏷️
- OAuth integration (Google, GitHub, etc.)
- Password hashing 🌐
- Token refresh 🔒
- Role-based access control 🔄
Goal: Make authentication as simple as Django’s auth system. 🧑💻
Authorization & Permissions
Section titled “Authorization & Permissions”Status: Research Phase 🔍
Priority: High⚡
Permission system:
- Role-based permissions 🎭
- Resource-based permissions 📂
- Permission middleware 🎨
- Policy-based authorization 📜
Example:
// Planned APIconst createPost = requireAuth(async (question, reply) => { // Only authenticated users})
const getAllUsers = requireAuth(requireRole(['admin'],async (question, reply) => { // Only admin users}))Here’s the updated text with emojis:
CLI Improvements
Section titled “CLI Improvements”Status: Ongoing 🔄
Priority: Medium ⚖️
Enhanced CLI commands:
- Interactive project setup 🛠️
- Database seeding 🌱
Example:
# Planned commandsst generate model Userst db:seedst deployWebSocket Support
Section titled “WebSocket Support”Status: Research Phase 🔍
Priority: Medium ⚖️
Planned to use Socket.io under the hood ⚡
Real-time communication:
- WebSocket connections 🌐
- Room/namespace support 🏠
- Broadcasting 📡
- Connection management 🔧
Example:
import { Server } from 'stratus-ts'
const io = new Server();
io.on("connection", (socket) => { // ...});
export default ioAPI Documentation Generator
Section titled “API Documentation Generator”Status:: Planned 🗓️
Priority: Medium ⚖️
Automatic API docs:
- Generate OpenAPI/Swagger specs 📜
- Interactive documentation 🖥️
- Code examples 💻
- Response schemas 🗂️
Example:
# Planned commandst docs:generatePerformance Optimization
Section titled “Performance Optimization”Status: Ongoing 🔄
Priority: High⚡
Continuous improvements:
- Optimized route matching 🛣️
- Query optimization hints 🧩
- Caching layer 🗄️
- Compression support 📦
Long Term
Section titled “Long Term”Ambitious features for future major versions. 🚀
Admin Panel
Section titled “Admin Panel”Status: Concept Phase 💡
Priority: High ⚡
Django-style admin interface:
- Auto-generated CRUD interfaces 🔄
- Model management 🛠️
- User management 👥
- Customizable dashboards 📊
- File manager 🗂️
Goal: Provide a ready-to-use admin panel out of the box. 📦
Built-in Caching Layer
Section titled “Built-in Caching Layer”Status: Planned 🗓️
Priority: High ⚡
Caching system:
- Route-level caching 🛣️
- Database query caching 💾
- Cache invalidation 🔄
- Multiple backends (memory, Redis) 🧠🔴
GraphQL Support
Section titled “GraphQL Support”Status: Planing 📝
Priority: Low ⚖️
GraphQL integration:
- Schema generation from models 🗂️
- Resolver helpers 🛠️
- Subscription support 🔄
- GraphQL playground 🛝
Why: Modern API alternative to REST. 🌐
Task Queue / Background Jobs
Section titled “Task Queue / Background Jobs”Status: Research Phase 🔍
Priority: Low ⚖️
Background processing:
- Job queues 📋
- Scheduled tasks (cron-like) ⏲️
- Worker processes 🧑💻
- Job retry logic 🔁
- Job monitoring 📊
Example:
// Planned APIqueue.add('send-email', { to: 'user@example.com', subject: 'Welcome!',});Multi-Database Support
Section titled “Multi-Database Support”Status: Concept Phase 💡
Priority: Low ⚖️
Multiple database connections:
- Read/write splitting 🔄
- Multi-tenant databases 🏢
- Connection pooling per database 🌊
Plugin System
Section titled “Plugin System”Status: Concept Phase 💡
Priority: Low ⚖️
Official plugin architecture:
- Official plugins 🔌
- Community plugins 🌍
- Plugin hooks 🪝
- Plugin configuration ⚙️
Deployment Tools
Section titled “Deployment Tools”Status: Planned 🗓️
Priority: Low ⚖️
Easy deployment:
- Docker integration 🐳
- Health checks 💪
- Monitoring integration 📊
Ecosystem Growth
Section titled “Ecosystem Growth”Beyond the core framework: 🌱
Starter Templates
Section titled “Starter Templates”Status: Planned 🗓️
Pre-built templates:
- Blog template 📝
- E-commerce template 🛒
- SaaS starter 💻
- API-only template 🌐
- Fullstack template 🔧
Integration Guides
Section titled “Integration Guides”Status: Planing 📝
Guides for integrating:
- Frontend frameworks (React, Vue, etc.) ⚛️
- Payment gateways (Stripe, PayPal) 💳
- Email services (SendGrid, Mailgun) 📧
- Cloud storage (AWS S3, Cloudflare R2) ☁️
- Analytics (Google Analytics, Plausible) 📈
Video Tutorials
Section titled “Video Tutorials”Status: Planned 🗓️
Video content:
- Getting started series 🎬
- Building real projects 🏗️
- Advanced techniques 🎓
- Best practices 🌟
Community Resources
Section titled “Community Resources”Status: Growing 🌱
Foster community:
- Discord server (planned) 💬
- Community showcase 🎨
- Blog posts and articles 📰
Feature Requests
Section titled “Feature Requests”Your input shapes our roadmap! 🛠️
How to Request Features
Section titled “How to Request Features”- Search existing requests: Check GitHub Issues first 🔍
- Open a discussion: Share your idea in Discussions 💬
- Explain your use case: Why do you need this feature? 🤔
- Suggest implementation: How would you like it to work? 💡
What Gets Prioritized
Section titled “What Gets Prioritized”Features are prioritized based on:
- Demand: How many people want it? 📊
- Impact: Does it solve a major pain point? 💥
- Simplicity: Does it fit our philosophy? ⚖️
- Feasibility: Can we implement it well? 🛠️
Feature Voting
Section titled “Feature Voting”Community voting helps us prioritize: 🗳️
- Reactions on GitHub issues indicate demand 👍
- Popular requests move up the roadmap 🚀
- Clear use cases help justify features 💬
Breaking Changes Policy
Section titled “Breaking Changes Policy”We take backward compatibility seriously: 🔒
Version Numbering
Section titled “Version Numbering”We follow semantic versioning: 🔢
- Major (v1.0.0 → v2.0.0): Breaking changes allowed ⚠️
- Minor (v1.0.0 → v1.1.0): New features, no breaking changes ✨
- Patch (v1.0.0 → v1.0.1): Bug fixes only 🐞
Deprecation Process
Section titled “Deprecation Process”Before removing features: ⚠️
- Announce deprecation: Warning in docs and release notes 📢
- Deprecation period: At least one major version ⏳
- Migration guide: Clear instructions for updating 📘
- Removal: Only in next major version 🗑️
Migration Guides
Section titled “Migration Guides”For breaking changes:
- Step-by-step migration instructions 📝
- Code examples (before/after) 💻
- Automated migration tools when/if possible 🤖
- Community support during transition 💬
Release Schedule
Section titled “Release Schedule”Patch Releases: As needed (bug fixes) 🐞 Minor Releases: Monthly (new features) ✨ Major Releases: Quarterly (breaking changes) 🔨
Note: Schedule is flexible based on feature readiness and stability. 📅
How You Can Help
Section titled “How You Can Help”Want to influence the future of StratusTS? 🚀
1. Use It and Share Feedback
Section titled “1. Use It and Share Feedback”- Build projects with StratusTS 💻
- Report bugs and pain points 🐛
- Share what works well 💡
2. Request Features
Section titled “2. Request Features”- Explain your use cases 🗣️
- Vote on existing requests 👍
- Participate in discussions 💬
3. Contribute Code
Section titled “3. Contribute Code”- Fix bugs 🔧
- Implement features ✨
- Improve documentation 📚
- Write tests ✅
See Contributing for details. 📋
4. Spread the Word
Section titled “4. Spread the Word”- Star the repo ⭐
- Write blog posts ✍️
- Share on social media 📱
- Recommend to others 👥
Stay Updated
Section titled “Stay Updated”Follow development:
- GitHub: Watch the repository 🖥️
- Releases: Check release notes 📅
- Discussions: Join conversations 💬
- This Page: Roadmap updates regularly 🔄
Current Focus
Section titled “Current Focus”Right now, we’re focused on: 🎯
- Stabilizing dynamic routing 🔄
Thank you for being part of the StratusTS journey! 🙏 Your feedback and support help make this framework better for everyone. 💪