Back to the Basics. Into the Future. https://mcfly.js.org
Find a file
Ayo Ayco 280e2f6150 chore(create-mcfly, config): migrate to typescript
- initial migration before we do the core
2025-02-28 21:50:28 +01:00
.husky chore: update eslint action & eslint-prettier config for endOfLine 2024-12-29 00:23:56 +01:00
.vscode feat: move cli to core (#55) 2025-01-08 21:21:31 +01:00
assets feat(site): add icons 2025-02-14 21:39:22 +01:00
packages chore(create-mcfly, config): migrate to typescript 2025-02-28 21:50:28 +01:00
site fix(site, templatest): unclosed link tags 2025-02-28 20:19:38 +01:00
templates/basic fix(site, templatest): unclosed link tags 2025-02-28 20:19:38 +01:00
.build.yml chore: add secret UUID 2025-02-08 19:31:48 +01:00
.build.yml.bkup chore: test build 2025-01-09 20:02:43 +01:00
.gitignore feat: use .mcfly as builddir 2025-01-14 18:40:04 +01:00
.prettierignore chore: add eslint-plugin-prettier 2024-12-27 23:10:41 +01:00
CONTRIBUTING.md chore: update contributing guide 2025-02-10 23:18:41 +01:00
eslint.config.mjs chore: update eslint action & eslint-prettier config for endOfLine 2024-12-29 00:23:56 +01:00
LICENSE chore(packages): update LICENSEs 2023-11-09 11:33:02 +01:00
netlify.toml chore: run netlify deploy on root 2025-01-09 21:38:58 +01:00
package.json chore(create-mcfly, config): migrate to typescript 2025-02-28 21:50:28 +01:00
pnpm-lock.yaml chore(create-mcfly, config): migrate to typescript 2025-02-28 21:50:28 +01:00
pnpm-workspace.yaml chore: migrate to pnpm 2024-03-09 21:23:06 +01:00
prettier.config.mjs chore: update eslint action & eslint-prettier config for endOfLine 2024-12-29 00:23:56 +01:00
README.md chore: add link to roadmap in readme 2025-02-14 23:05:40 +01:00
tsconfig.base.json chore(create-mcfly, config): migrate to typescript 2025-02-28 21:50:28 +01:00
VALUES.md chore: add initial values doc 2025-02-10 23:18:04 +01:00

Note

The project is now on SourceHut. Please submit issues or requests via our Todo Page there, or send them via email. You may also follow updates about the project via our Mailing List.

rRick & Morty cartoon

McFly

McFly is a no-framework metaframework
that assists in leveraging the web platform

Why

I often wonder what it would look like to build sites & apps knowing just the basics.

I thought:

McFly is my reimagination of web development: Back to the basics. Into the future.

Project Status

We are currently in a Proof of Concept phase. All parts are subject to breaking changes in minor releases.

👉 Road to v1.0.0 todo items

Try it today

Run the following to generate a McFly starter project.

npm create mcfly@latest

Features

Use vanilla custom elements (or sugar-coated web components)
Write server-powered .html pages
"Use the Platform™" on both server runtimes & browsers
Use server-side rendering
Deploy anywhere, even the Edge

Special directories

1. ./src/pages/

  • file-based routing for .html files
  • 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 .js files for now)
  • all components are automatically registered using their file names; a hello-world.js component can be used as <hello-world>
  • static .html fragments; a my-header.html fragment can be directly used as <my-header>

3. ./src/api/

  • file-based routing for REST API endpoints
  • e.g., ./src/api/users.js can be accessed via http://<domain>/api/users

Packages

The following are the project packages published on the NPM registry:

Package Description Version
@mcflyjs/config Nitro server config for McFly projects npm version
@mcflyjs/core Route event and config handlers npm version
create-mcfly Script for scaffolding a new McFly workspace npm version

Project setup

After cloning the project, you will need node and pnpm installed. When you are sure that you have node and pnpm, then run the following to download the dependencies:

corepack enable
pnpm i

The following commands are available to you on this project. Add more, or modify them as needed in your ./package.json file.

Command Action
pnpm run site Start the development server for https://mcfly.js.org
pnpm run template:basic Start the development server for the basic template
pnpm run build Locally generate the app's build files to ./output
pnpm run preview Preview the built app locally

More info

This framework is a result of an exploration for using Nitro and 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