|
|
||
|---|---|---|
| .vscode | ||
| assets | ||
| packages | ||
| site | ||
| templates/basic | ||
| .eslintignore | ||
| .gitignore | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
McFly
McFly is a no-framework framework
that assists in leveraging the web platform
Project Status
We are currently in a Proof of Concept phase. All parts are subject to breaking changes in minor releases.
Installation
Run the following to generate a McFly starter project.
npm create mcfly@latest
Features
The time has come for vanilla Web tech. 🎉
✅ Create web apps with vanilla custom elements
✅ Write real .HTML files
✅ Have no frameworks or reactivity libraries on the browser
✅ Use server-side rendering
✅ Deploy anywhere
Special directories
1. ./src/pages/
- file-based routing for
.htmlfiles - directly use custom elements & static fragments (no imports or registry maintenance needed)
- use
<script server:setup>to define logic that runs on the server, which then gets stripped away
2. ./src/components/
- custom element constructor files (only
.jsfiles for now) - all components are automatically registered using their file names; a
hello-world.jscomponent can be used as<hello-world> - static
.htmlfragments; amy-header.htmlfragment can be directly used as<my-header>
3. ./routes/api/
- file-based routing for REST API endpoints
- e.g.,
./routes/api/users.tscan be accessed viahttp://<domain>/api/users - TypeScript or JavaScript welcome!
Packages
The following are the project packages published on the NPM registry:
| Package | Description | Version |
|---|---|---|
@mcflyjs/cli |
The McFly CLI tooling | |
@mcflyjs/config |
Nitro server config for McFly projects | |
@mcflyjs/core |
Route event and config handlers | |
create-mcfly |
Script for scaffolding a new McFly workspace |
More info
This framework is a result of an exploration for using Nitro and vanilla JS custom elements using a minimal Web Component Base class.
Nitro is the same production-grade web server powering Nuxt
Just keep building
A project by Ayo Ayco