mcfly/README.md
Ayo 970970fd32 feat: use fastify as server
- [x] implement server framework plugin config
- [x] new @mcflyjs/fastify package
- [x] update readme re: pivot & target state
- [x] new basic template

Reviewed-on: https://git.ayo.run/ayo/mcfly/pulls/2
Co-authored-by: Ayo <ayo@ayco.io>
Co-committed-by: Ayo <ayo@ayco.io>
2026-06-04 11:03:45 +00:00

4.9 KiB

McFly logo

McFly

McFly is a metaframework
that assists in building on the Web

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 focused rewrite. All parts are subject to breaking changes in minor releases.

  • file-based API routing via fastify as server framework
  • file-based HTML pages routing & templating via Eta
  • auto-registry of custom elements
  • SSR custom elements
  • SSG

Try it today

Run the following to generate a McFly starter project.

npm create mcfly@latest

Target 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/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 Configuration handling for McFly projects npm version
@mcflyjs/core Commands & runtime handling npm version
@mcflyjs/fastify Adapter for using fastify as server framework 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 was initially a result of an exploration for using Nitro and custom elements using a minimal Web Component Base class.

In 2026, we pivoted to a new target architecture to become more like a "glue" that allows putting together existing options that achieve our goals. We avoid building custom mechanisms when we can. The resulting architecture theoretically allows using different server frameworks, templating libraries, custom element libraries, etc.


Just keep building.
A project by Ayo