A modern, high-performance web framework designed for building reactive applications with Single File Components (.can). Can combines the simplicity of signal-based reactivity with a powerful CLI and a built-in compiler.
- Signal-Based Reactivity: Fine-grained updates without a Virtual DOM.
- Single File Components: Write logic, templates, and scoped styles in
.canfiles. - Powerful CLI: Integrated tools for building, serving (HMR), and scaffolding.
- Static Site Generation (SSG): Pre-render your app for maximum SEO and speed.
- First-Class Tooling: Custom VS Code extension for syntax highlighting and snippets.
- Built-in Essentials: Store management, I18n, Animations, and Routing.
Clone the repository and install dependencies:
npm install
npm run compile # Compiles the framework core and CLIOnce compiled, you can use the can command to manage your projects:
- Create a new project:
can create <my-app> - Start dev server (HMR):
can dev - Production build:
can build - Generate Static Site:
can ssg
component Counter {
var count = signal(0);
function increment() {
this.count.value++;
}
var template = `
<div class="box">
<h1>Count: {{count}}</h1>
<button @click="increment">Increment</button>
</div>
`;
}
<style scoped>
.box { padding: 20px; border-radius: 8px; }
</style>- /src/compiler: The core transpiler for
.canfiles. - /src/runtime-core: The base component class and DOM orchestration.
- /src/reactivity: The signal and effect engine.
- /ide-extension: Source for the VS Code extension.
The Can Framework and its tooling are developed and maintained by Endurance Ogun, a software engineer dedicated to building high-performance, developer-centric web technologies.
Endurance focuses on compiler-driven architectures and fine-grained reactivity to push the boundaries of modern web performance.
- GitHub: Diospace
- Project: Can Framework
git add .
git commit -m "feat: add new store module logic"
git push origin main
npm version patch
git push origin main --tags
git tag v1.0.4
git push origin v1.0.4
npm login npm run release
git add .
git commit -m "feat: improve framework linking, scaffolding, and release process"
npm version patch
npm run release
git add .
git commit -m "refactor: improve CLI build logic, support multiple targets, and optimize package distribution"
npm run release