Igniter.js
The End-to-End Typesafe Full-stack TypeScript Framework
Built for Humans and Code Agents
[](https://www.npmjs.com/package/@igniter-js/core)
[](https://www.typescriptlang.org/)
[](https://opensource.org/licenses/MIT)
[](https://igniterjs.com)
---
## What is Igniter.js?
Igniter.js is a modern, full-stack TypeScript framework that eliminates the friction between your backend and frontend. Define your API once, get fully-typed clients everywhere—no code generation, no manual synchronization, just pure end-to-end type safety.
**Perfect for building scalable APIs, real-time applications, and modern web services.**
## Quick Start
Get up and running in seconds:
\`\`\`bash
# Create a new project
npx @igniter-js/cli@latest init my-app
# Or add to existing project
npm install @igniter-js/core zod
\`\`\`
## Key Features
- ** End-to-End Type Safety** - Define once, use everywhere with full TypeScript inference
- ** Zero Code Generation** - No build steps, no schemas to sync
- ** Framework Agnostic** - Works with Next.js, Express, Bun, and more
- **️ Built-in Features** - Queues, Real-time, Caching, and Telemetry
- ** Code Agent Optimized** - Optimized for code agents and AI assistance
- ** Plugin System** - Extensible and modular architecture
## Documentation & Resources
- ** [Official Documentation](https://igniterjs.com/docs)** - Complete guides and API reference
- ** [Getting Started](https://igniterjs.com/docs/getting-started)** - Your first Igniter.js app
- ** [Blog](https://igniterjs.com/blog)** - Latest updates and tutorials
- ** [Templates](https://igniterjs.com/templates)** - Starter templates and examples
- ** [Changelog](https://igniterjs.com/changelog)** - What's new in each release
## ️ Development
\`\`\`bash
# Interactive development dashboard
npx @igniter-js/cli@latest dev
# Build your project
npm run build
# Run tests
npm test
\`\`\`
## Example
\`\`\`typescript
// Define your API
// features/users/controllers/users.controller.ts
export const userController = igniter.controller(\{
path: '/users',
actions: \{
getUser: igniter.query(\{
path: '/:id' as const,
handler: async (\{ request, response, context, query \}) => \{
const user = await context.db.user.findUnique(\{
where: \{ id: input.id \}
\});
if (!user) \{
throw new Error('User not found');
\}
return user;
\},
\}),
createUser: igniter.muate(\{
path: '/' as const,
body: z.object(\{
name: z.string(),
email: z.string().email()
\})
handler: async (\{ request, response, context, query \}) => \{
return await context.db.user.create(\{
data: input
\});
\},
\}),
\}
\})
// Use in your React app with full type safety
import \{ api \} from './igniter.client';
function UserProfile(\{ userId \}: \{ userId: string \}) \{
const currentUser = api.user.getUser.useQuery(\{
enabled: !!userId,
staleTime: 5000,
refetchOnWindowFocus: false,
params: \{
id: userId
\},
onSuccess: (data) => \{
console.log('Successfully fetched current user:', data);
\},
onError: (error) => \{
console.error('Error fetching current user:', error);
\},
\});
if (currentUser.isLoading) return
Loading user...
;
if (currentUser.isError) return
Error to load user: \{postsQuery.error.message\}
;
return (
\{currentUser?.name\}
\{currentUser?.email\}
);
\}
\`\`\`
## Community & Support
- ** [Issues](https://github.com/felipebarcelospro/igniter-js/issues)** - Report bugs and request features
- ** [Discussions](https://github.com/felipebarcelospro/igniter-js/discussions)** - Ask questions and share ideas
- ** [Contributing](https://github.com/felipebarcelospro/igniter-js/blob/main/CONTRIBUTING.md)** - Help make Igniter.js better
## License
MIT License - see the [LICENSE](LICENSE) file for details.
---