Madam π A lightweight local web server for Design Prototyping β’ Front-end Development π
Pew pew pew! ZWIFF! Boom!
- Compiled, Fast, Low memory foot-print π
- < 1MB file size binary app
- < 3MB RAM usage in Welcome Screen π₯³
- Install once, run anytime, as many servers you need π
- No code required
- Serve Static Assets π¦
- Configuration via
madam.yml
- Static HTML Website Generator
- Routes Management via
madam.routes.yml
- Supports all HTTP verbs,
GET
,POST
,HEAD
, etc. - Madam Skins / Template Engine via Tim for
layout
,view
,partials
- Made for Design Prototyping and Front-end Development
- Works on Linux and OS X
- Open Source under
MIT
license - Pew pew pew! ZWIFF! π
Because NodeJS environment sucks and there are no other lightweight / easy to setup alternatives.
Prototyping. Showcase. JavaScript, HTML, CSS projects, libraries or packages. Also best for testers and designers. Pew pew again!
Madam is currently available for OS X and Linux distributions only. You can compile Madam by yourself, or get the latest version from GitHub releases.
Setup Madam to your PATH
and do the do π€ Better said, do the blue! π
ln -s ~/path/to/your/madam /usr/local/bin
Madam π A Lightweight & Fast Local Web Server for
Design Prototyping π¨ and Front-end Development π
π Info, updates and bugs: https://github.com/openpeeps/madam
Usage:
init Create a new Madam configuration file from CLI
run [--verbose] Run local server. Use verbose flag for tracking requests
build Build current project to Static HTML Website
Options:
-h --help Show this screen.
-v --version Show Madam version.
Run madam init
in your project directory and setup your madam.yml
via command line wizard.
Here you can find a beautiful madam.yml
configuration that covers all Madam features.
name: "Awesome Madam"
path: "./example" # path to your root HTML project
port: 1230 # optional | default 1010
# Paths for layouts, views or partials
# These paths are prepended with project path provided above
# For example, layouts will point to "./example/layouts"
templates:
layouts: "layouts" # directory path for layouts
views: "views" # directory path for views
partials: "partials" # directory path for partials
routes:
get:
about: "about.html"
products/my-product: "product.html"
publish: "publish.html"
# Define your custom Middlewares
middlewares:
auth: "@login.session" # a fake auth middleware
# Setup Static Assets to serve any kind of static files via Madam
assets:
source: "./dist/assets/*" # Path on disk for indexing the static assets
public: "/assets" # Public route for accessing the static assets
# Customize console output
console:
logger: true # Enable http request logger
clear: true # Clear previous console output on request
The way you can stay DRY. Madam brings layouts
, views
and partials
logic to your project.
On hold, Madam depends on π Tim Template Engine (WIP)
todo
- Create logo
- Embedding Httpbeast
- Routes Handler
- Static Assets Handler
-
init
command -
run
command with--verbose
flag -
build
command - Multi-threading while generating project to Static HTML
- Templating via Tim Engine supporting
layouts
,views
,partials
- GitHub Workflow Action for Cross Compilation and Release
- Talk about it on ycombinator / stackoverflow / producthunt
- Fake content generator based on Faker Nim library
- Madam GUI
Madam | MIT
license. Made by Humans from OpenPeeps.
Copyright Β© 2023 OpenPeeps & Contributors β All rights reserved.