smalljs$molSearch⌘ KDocsPlaygroundCompareEcosystemAboutEN
InstallationGetting StartedIntroductionMental modelGetting StartedFrom TypeScript to view.treeProject StructureToolingEssentialsInstallationViewsState & ReactivityRoutingRenderingTestingDeploymentTroubleshootingDataData FetchingData SchemasGiper BazaMoreShowcaseFrom React, Vue & SvelteCookbookAdvancedPluginsModule metadataOfflineGhost viewsAboutFAQTeamReleasesAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

Installation

Getting Started walks you through your first app step by step. This page is the reference: how a $mol project is laid out and how the build works.

Requirements

Node.js 24+ and git. Nothing else is installed globally.

The MAM workspace

$mol apps live inside MAM — the build tool and module registry. You clone it once and develop your modules inside it:1git clone https://github.com/hyoo-ru/mam.git ./mam2cd mam3npm install4npm startnpm start runs a watching dev server on http://localhost:9080/. It rebuilds on save and resolves dependencies automatically — you never maintain a bundler config.There is also the official quick start from the MAM README, without cloning:1mkdir mam && cd mam2npm exec mam@latestIt starts the same dev server in an empty folder. We still recommend the clone: all the work happens inside MAM anyway, and the clone comes with editor settings (.vscode) and .npmrc.

In the browser

Nothing installed on your machine? Open the workspace in GitHub Codespaces: codespaces.new/hyoo-ru/mam. It is VS Code in the browser on a GitHub machine with Node.js already there. Run npm install and npm start in its terminal and open the forwarded port 9080.

How modules are named

Every component name maps to a folder path, and each underscore is a folder separator:1$my_app → my/app/2$my_app_header → my/app/header/Module folder names never contain an underscore — use nested folders for multi-word names. If a component you use never shows up in the bundle, the folder path almost always doesn't match the class name.

Anatomy of a module

A component is a folder of files. The main ones:FilePurposeThe index.html of an app mounts the root component:1<body mol_view_root>2 <div mol_view_root="$my_app"></div>3 <script src="web.js"></script>4</body>

Building for production

Edit this page on GitHubWas this helpful?YesNoPreviousToolingNextViews
On this pageRequirementsThe MAM workspaceIn the browserHow modules are namedAnatomy of a moduleBuilding for productionAdding npm packagesLoading a package at runtimeNext
Type to search the documentation.