Skip to content

⚡ Build web applications with Components, Store and Router in 3KB!

License

Notifications You must be signed in to change notification settings

costrojs/costro

Repository files navigation

Costro

GitHub Workflow Status (branch) Coverage Status

Costro logo

What is Costro?

Costro is a new lightweight framework with a different approach: helping you build fast web applications with a low level of dependency. If you are concerned about your app's loading performance, this library makes sense as it is extremely lightweight compared to the competition (only 3 KB).

Costro allows you to create components with store and a router in one lightweight easy-to-use package. It does not use virtual DOM because it is, by definition, slower than carefully crafted manual updates.

Motivation

  1. Finding the framework that matches your needs without impacting web performance is not that easy these days. Popular librairies generally embed more and more code as the community and popularity increase.
  2. Single Web Applications do not benefit from page reloading to improve performance, so the JavaScript code embedded during the first load is heavier.
  3. In addition, we do not use 100% of the features included in the frontend frameworks and generally, the dependency part can be larger than the actual written code.

Features

  • Components - Create function and class component.
  • Router - Map components to the routes.
  • Store - Access component store from any component.
  • Lifecycle hooks - Take advantage of component lifecycle events.
  • Props - Inject props into components.
  • Template string or JSX - Write your templates in a native Template String or in JSX.
  • JSX compiler - Transforms JSX syntax into valid DOM elements (only 1KB).
  • CLI - Create a new Costro app in seconds with an interactive experience.

Documentation

You can find the Costro documentation and examples on the Costro website.

Questions

For questions and support please use the GitHub Discussions. For bug report or feature request, please use the issues on GitHub.
Pull Requests are welcome!

Used by

Browser support

It uses modern JavaScript to be as light as possible and therefore only works on the latest version of modern browsers (e.g. Chrome, Firefox, Edge, Safari, Opera).

Licence

MIT

Copyright (c) 2021-present, Yoriiis