Skip to content

Portaki

portaki-modules

Official Portaki Wasm guest modules monorepo
Independently versioned Extism modules, published to GitHub Container Registry as public OCI images.

CI License Apache-2.0 Rust 1.75+ Extism GHCR portaki.app

Modules · Requirements · Development · Publishing · Marketplace order · Contributing · Security


Each crate under modules/ is a Portaki guest module. Authoring uses portaki-sdk (portaki CLI).

On every push to main, CI builds and publishes:

ghcr.io/portakiapp/portaki-modules-<module-id>:<semver>

Why this monorepo?

  • One repo per ecosystem — shared CI, shared SDK pins, consistent lint/build gates
  • Independent versions — each module bumps its own Cargo.toml semver
  • OCI-first — dash-named public GHCR packages (portaki-modules-weather, …)
  • Pattern A — official modules live here; third-party modules use standalone repos + the same SDK

Modules

Module OCI image Description
access-guide ghcr.io/portakiapp/portaki-modules-access-guide:<semver> Arrival steps, codes, and parking
appliances ghcr.io/portakiapp/portaki-modules-appliances:<semver> Device guides and safety notice
checklist ghcr.io/portakiapp/portaki-modules-checklist:<semver> Checkout checklist with guest toggles
consumables ghcr.io/portakiapp/portaki-modules-consumables:<semver> Consumables catalog, guest shortages, restock tracking
emergency-contacts ghcr.io/portakiapp/portaki-modules-emergency-contacts:<semver> Useful numbers and host line
ev-parking ghcr.io/portakiapp/portaki-modules-ev-parking:<semver> EV spot, gate code, charger PIN with timed reveal
events ghcr.io/portakiapp/portaki-modules-events:<semver> Host-curated local events and map
facility-hours ghcr.io/portakiapp/portaki-modules-facility-hours:<semver> Pool, spa, and shared amenity schedules
guest-reviews ghcr.io/portakiapp/portaki-modules-guest-reviews:<semver> Post-stay thank-you and review CTAs
ical-sync ghcr.io/portakiapp/portaki-modules-ical-sync:<semver> Host iCal / Airbnb calendar feed import
issue-report ghcr.io/portakiapp/portaki-modules-issue-report:<semver> In-stay problem reports for the host
local-guide ghcr.io/portakiapp/portaki-modules-local-guide:<semver> Nearby spots and host picks
lost-found ghcr.io/portakiapp/portaki-modules-lost-found:<semver> Guest lost / found item reports
nuki ghcr.io/portakiapp/portaki-modules-nuki:<semver> Nuki smart-lock provider for access-guide
pre-arrival-form ghcr.io/portakiapp/portaki-modules-pre-arrival-form:<semver> ETA, occasion, allergies, message to host
rules ghcr.io/portakiapp/portaki-modules-rules:<semver> Structured bilingual house rules
sections ghcr.io/portakiapp/portaki-modules-sections:<semver> Editorial title + markdown body blocks
train ghcr.io/portakiapp/portaki-modules-train:<semver> Nearby station departure board
waste-recycling ghcr.io/portakiapp/portaki-modules-waste-recycling:<semver> Bins and collection schedule
weather ghcr.io/portakiapp/portaki-modules-weather:<semver> Current weather and 5-day forecast
wifi-guest ghcr.io/portakiapp/portaki-modules-wifi-guest:<semver> Guest Wi-Fi SSID and password with timed reveal

Structure

portaki-modules/
├── Cargo.toml                 # workspace + shared SDK git deps (portaki-sdk main / 2.1+)
├── modules/
│   ├── access-guide/          # each crate: ids.rs, guest/, host/, …
│   ├── appliances/
│   ├── checklist/
│   ├── consumables/
│   ├── emergency-contacts/
│   ├── ev-parking/
│   ├── events/
│   ├── facility-hours/
│   ├── guest-reviews/
│   ├── ical-sync/
│   ├── issue-report/
│   ├── local-guide/
│   ├── lost-found/
│   ├── nuki/
│   ├── pre-arrival-form/
│   ├── rules/
│   ├── sections/
│   ├── train/
│   ├── waste-recycling/
│   ├── weather/
│   └── wifi-guest/
└── .github/workflows/
    └── ci.yml                 # quality gates; publish to GHCR on main

Requirements

  • Rust 1.75+
  • Target wasm32-unknown-unknown
  • portaki CLI from portaki-sdk
rustup target add wasm32-unknown-unknown
cargo install --git https://github.com/PortakiApp/portaki-sdk --branch main --locked portaki-cli

Development

cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace

cd modules/weather
portaki build --release
portaki lint

See CONTRIBUTING.md for adding a new module.

Publishing

  1. Bump version in modules/<id>/Cargo.toml
  2. Merge to main
  3. CI publishes ghcr.io/portakiapp/portaki-modules-<id>:<semver>

GHCR packages are public. CI publishes with GITHUB_TOKEN (packages: write). Local publish needs a classic PAT with write:packages (or docker login ghcr.io).

Related repositories

Repository Role
portaki-sdk Rust SDK + portaki CLI
portaki.app Product site

Contributing

See CONTRIBUTING.md and the Code of Conduct.

Security issues: SECURITY.md — do not open a public issue.

License

Apache-2.0 · Copyright 2026 Syntax Labs

About

Official Portaki Wasm modules monorepo — published to GHCR as portaki-modules-* (Apache-2.0)

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

Contributors

Languages