Go to file
2024-01-04 19:33:07 -06:00
.vscode chore: tidy 2024-01-04 03:21:07 -06:00
build chore: tidy 2024-01-04 15:15:02 -06:00
packages refactor: inherit stdio by default 2024-01-04 19:33:07 -06:00
website chore: dox++ 2024-01-04 18:40:22 -06:00
.gitignore feat: package manager (and bun) 2024-01-04 03:20:55 -06:00
CHANGELOG.md feat: webpack 5 2023-11-30 21:41:42 -06:00
lerna.json feat: webpack 5 2023-11-30 21:41:42 -06:00
LICENSE.md chore: license 2022-02-27 05:44:27 -06:00
package.json chore: tidy 2024-01-04 15:15:02 -06:00
README.md feat: dox++ 2023-12-31 16:23:28 -06:00
TODO.md chore: dox++ 2024-01-04 18:40:22 -06:00

flecks

Flecks is an exceptionally extensible fullstack application production system. Its true purpose is to make application development a more joyful endeavor. Intelligent defaults combined with a highly dynamic structure encourage consistency while allowing you to easily express your own opinions.

✴️ BE WARY ✴️

This is largely untested software. There are undoubtedly many bugs that haven't yet been found.

I reserve the right to break all semantic versioning guarantees as long as there is a critical need for fundamental changes that significantly improve the project's architecture, performance, or address security vulnerabilities, and these modifications are deemed essential for the long-term stability, innovation, and overall betterment of the software. The project is young enough that I can get away with that. This will be revisited.

You've been warned!

Have fun! ☺️

Table of Contents

  1. Install
  2. Introduction
  3. Concepts

Install

Quickly scaffold a new application monorepo:

yarn create @flecks/app my-new-app

or with npm:

npx @flecks/create-app my-new-app

Quickly scaffold a new fleck:

yarn create @flecks/fleck my-new-fleck

or with npm:

npx @flecks/create-fleck my-new-fleck

Introduction

Modern features you expect — like

  • linting
  • testing
  • HMR (even on server 😳)
  • SSR

Things you don't expect — like

  • Dynamic CLI (hooks)
  • Dynamic REPL (hooks)
  • Dynamic build (include @flecks/react into your fleck and watch it learn to compile JSX, even on the server side)
  • Freedom to split up e.g. Redux applications into discrete slices while relying on flecks to automatically handle things like middleware, reducer composition, server/localStorage hydration, etc.
  • Write a hook and surprise someone else.

Concepts

Eeez vereh flecksible 🥴

At its core, flecks is a collection of modules that use hooks to orchestrate everything from building your project to handling the minutia of what happens when your application starts, when a client connects, defining database models, and more.

Just to give you an idea of the power of hooks, some will be listed here:

The build directory

Flecks applications contain a build directory with a flecks.yml that defines the flecks use to compose the project, as well as build-time configuration.

Flecks strives to provide powerful defaults that minimize the need to override configuration.

The simplest example of a flecks server application:

'@flecks/core': {}
'@flecks/server': {}

Yes, that's it! In fact, when you use yarn create @flecks/app, that's what is generated for you by default.

Obviously, this doesn't do much on its own. It simply bootstraps flecks and runs a server application with no interesting work to do. It's just a jumping-off point.

Can I offer you a nice egg in this trying time?

Learn even more about the build directory.


Documentation is a work in progress ❤️