Skip to content

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.

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.⏳

These features are actively in development or planned for the next few releases.🚀

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.

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:

src/users/controllers.ts
// Planned API
const uploadAvatar: ControllerType = async (question, reply) => {
const { files } = await question.body();
// Process uploaded file
};

Why: Common requirement for modern web apps. 🌐

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. 💼

Status: Planned 🗓️
Priority: High ⚡

Built-in validation for:

  • Request body validation 📦
  • Query parameter validation 🔍
  • Type coercion 🔄
  • Custom validators 🛠️

Example:

src/users/routes.ts
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. 🔧

Status: Planned 🗓️
Priority: Medium ⚖️

Improved cookie support:

  • Parse cookies automatically 🍪
  • Set secure cookies 🔒
  • Cookie signing ✍️
  • SameSite configuration 🌐

Example:

src/users/routes.ts
// Planned API
reply.cookie('name','value',{
domain:'',
expires: new Date(/*some date*/),
httpOnly: true,
sameSite: 'strict',
secure: true
});

Why: Essential for storing identities. 🔑

Features planned for upcoming major releases. 🗓️

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. 🧑‍💻

Status: Research Phase 🔍
Priority: High⚡

Permission system:

  • Role-based permissions 🎭
  • Resource-based permissions 📂
  • Permission middleware 🎨
  • Policy-based authorization 📜

Example:

src/users/controllers.ts
// Planned API
const 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:


Status: Ongoing 🔄
Priority: Medium ⚖️

Enhanced CLI commands:

  • Interactive project setup 🛠️
  • Database seeding 🌱

Example:

terminal
# Planned commands
st generate model User
st db:seed
st deploy

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:

src/app/socket.ts
import { Server } from 'stratus-ts'
const io = new Server();
io.on("connection", (socket) => {
// ...
});
export default io

Status:: Planned 🗓️
Priority: Medium ⚖️

Automatic API docs:

  • Generate OpenAPI/Swagger specs 📜
  • Interactive documentation 🖥️
  • Code examples 💻
  • Response schemas 🗂️

Example:

terminal
# Planned command
st docs:generate

Status: Ongoing 🔄
Priority: High⚡

Continuous improvements:

  • Optimized route matching 🛣️
  • Query optimization hints 🧩
  • Caching layer 🗄️
  • Compression support 📦

Ambitious features for future major versions. 🚀

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. 📦

Status: Planned 🗓️
Priority: High ⚡

Caching system:

  • Route-level caching 🛣️
  • Database query caching 💾
  • Cache invalidation 🔄
  • Multiple backends (memory, Redis) 🧠🔴

Status: Planing 📝
Priority: Low ⚖️

GraphQL integration:

  • Schema generation from models 🗂️
  • Resolver helpers 🛠️
  • Subscription support 🔄
  • GraphQL playground 🛝

Why: Modern API alternative to REST. 🌐

Status: Research Phase 🔍
Priority: Low ⚖️

Background processing:

  • Job queues 📋
  • Scheduled tasks (cron-like) ⏲️
  • Worker processes 🧑‍💻
  • Job retry logic 🔁
  • Job monitoring 📊

Example:

src/users/controllers.ts
// Planned API
queue.add('send-email', {
to: 'user@example.com',
subject: 'Welcome!',
});

Status: Concept Phase 💡
Priority: Low ⚖️

Multiple database connections:

  • Read/write splitting 🔄
  • Multi-tenant databases 🏢
  • Connection pooling per database 🌊

Status: Concept Phase 💡
Priority: Low ⚖️

Official plugin architecture:

  • Official plugins 🔌
  • Community plugins 🌍
  • Plugin hooks 🪝
  • Plugin configuration ⚙️

Status: Planned 🗓️
Priority: Low ⚖️

Easy deployment:

  • Docker integration 🐳
  • Health checks 💪
  • Monitoring integration 📊

Beyond the core framework: 🌱

Status: Planned 🗓️

Pre-built templates:

  • Blog template 📝
  • E-commerce template 🛒
  • SaaS starter 💻
  • API-only template 🌐
  • Fullstack template 🔧

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) 📈

Status: Planned 🗓️

Video content:

  • Getting started series 🎬
  • Building real projects 🏗️
  • Advanced techniques 🎓
  • Best practices 🌟

Status: Growing 🌱

Foster community:

  • Discord server (planned) 💬
  • Community showcase 🎨
  • Blog posts and articles 📰

Your input shapes our roadmap! 🛠️

  1. Search existing requests: Check GitHub Issues first 🔍
  2. Open a discussion: Share your idea in Discussions 💬
  3. Explain your use case: Why do you need this feature? 🤔
  4. Suggest implementation: How would you like it to work? 💡

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? 🛠️

Community voting helps us prioritize: 🗳️

  • Reactions on GitHub issues indicate demand 👍
  • Popular requests move up the roadmap 🚀
  • Clear use cases help justify features 💬

We take backward compatibility seriously: 🔒

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 🐞

Before removing features: ⚠️

  1. Announce deprecation: Warning in docs and release notes 📢
  2. Deprecation period: At least one major version ⏳
  3. Migration guide: Clear instructions for updating 📘
  4. Removal: Only in next major version 🗑️

For breaking changes:

  • Step-by-step migration instructions 📝
  • Code examples (before/after) 💻
  • Automated migration tools when/if possible 🤖
  • Community support during transition 💬

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. 📅

Want to influence the future of StratusTS? 🚀

  • Build projects with StratusTS 💻
  • Report bugs and pain points 🐛
  • Share what works well 💡
  • Explain your use cases 🗣️
  • Vote on existing requests 👍
  • Participate in discussions 💬
  • Fix bugs 🔧
  • Implement features ✨
  • Improve documentation 📚
  • Write tests ✅

See Contributing for details. 📋

  • Star the repo ⭐
  • Write blog posts ✍️
  • Share on social media 📱
  • Recommend to others 👥

Follow development:

  • GitHub: Watch the repository 🖥️
  • Releases: Check release notes 📅
  • Discussions: Join conversations 💬
  • This Page: Roadmap updates regularly 🔄

Right now, we’re focused on: 🎯

  1. Stabilizing dynamic routing 🔄

Thank you for being part of the StratusTS journey! 🙏 Your feedback and support help make this framework better for everyone. 💪