From c2cffaeae42a8eea2c4b4ee021fb1a833cf6dab8 Mon Sep 17 00:00:00 2001 From: Jakub Date: Sat, 11 Jul 2026 14:36:59 +0800 Subject: [PATCH] laying out the dream --- README.org | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/README.org b/README.org index f6bb80f..df796a6 100644 --- a/README.org +++ b/README.org @@ -1,3 +1,25 @@ -#+title: nitinol +#+title: Nitinol -Nitinol is a framework for building malleable web applications. +Nitinol is a framework for building user-malleable web applications and tools, specifically PWAs, built on top of [[https://mithril.js.org/index.html][Mithril.js]] and [[https://lips.js.org/][LIPS scheme]]. +It provides all the tools necessary to make a full application stack that the user is easily able to modify; both for themselves or others, and ephemerally or persistently. + +:naming: +Nitinol is an alloy of Nickel and Titanium that has shape memory and superelasticity. +:end: + +* Design Philosophy +Nitinol is heavily inspired by Emacs in terms of extensibility and self-documentation. +Instead of treating the application as a standalone application, it should be treated as a construction on top of a powerful Lisp core. +This core can then be modified by the user in real time --- allowing them to almost entirely change application behaviour --- or inspected to easily understand the inner workings. + +A number of approaches already exist on the web for achieving malleability, but they are nothing compared to the power of a proper scripting engine. +- Settings only allow the user to modify the application in ways made legal by the original developer. +- Plugins also have limits in their ability to modify aspects of the application, while also generally being difficult to develop. +- Extensions can inject CSS or HTML but cannot modify server-side behaviour, and can also be annoying to develop and share. +- Open source projects typically lack sufficient internal documentation for non-developers to modify the internals, and often require additional (possible painful) setup steps. + +Nitinol seeks to address all these problems by providing a Scheme environment in the web browser, and tools for building full applications. +- A live REPL allows the user to modify the application in real time. +- REPL inputs can be saved to a cached configuration file, which can be shared to other users of the application. +- Code is self-documenting via doc string macros and source code links, allowing easy introspection. +- Both the front-end and back-end can be modified (within security and access control constraints).