Solidground 2024: Maintainers Log (wiki)

Status: December 2023, preparation phase

(This wiki provides per-month up-to-date status and focus for project development.)

Contents

Solidground DX

(Developer Experience: how-we-build)

Solidground project itself, the entire git repository, forms the development environment for creators. Starting with our tool suite only requires cloning from Codeberg to the local machine, then invoke the Weave CLI from the command-line.

Goals:

  • Single git (top-level / git modules?) folder, yet multiple (many?) build options available, scriptable.
  • Build configurations encapsulated by Weave CLI over time. Simple (SDK-only) and Advanced use.
  • Multiple sub-projects: Rust crates, SDK (Rust, Golang), Front-end builds.
  • Support for SDK polyglot development, initially Rust and Golang (and maybe Typescript).

Focus:

  • Usability (DX), productivity (automation, compile times), pragmatism (MLP-focus !).

Information:

DX Design

Focus:

  • Comprehensive monorepo structure, folder hierarchy, git
  • Project development (Solidground) vs. solution development (SDK)
  • Build artifacts, CI/CD, DevOps.

Front-end

Responsible: @aschrijver

Tech-stack:

  • pnpm: Fast, disk space efficient package manager.
  • Vite: Build tool and dev server.
  • Preact: Lightweight API-compatible react alternative.
  • Lerna: Build system for JS/TS monorepo’s.
  • Astro: Web application framework.
  • Starwind: Astro theme for embedded living documentation.
  • Tailwind: Intuitive CSS framework.
  • Radix-UI: UI component library using Tailwind.
    • (Possible alternative: TW-Elements: community-driven, AGPL, port Bootstrap UI components)
  • shadcn/ui: Build your component library from code snippets (based on Radix).

Deliverables:

  • RFC → ADR
  • Doc: Installation
  • Doc: Contributing
  • Project: Update roadmap
  • Project: Minimum build environment

Back-end

Responsible: @realaravinth

Techstack:

Candidates:

  • Garage: Amazon S3-compatible distributed object storage, NLnet-funded.

Deliverables:

  • RFC → ADR
  • Doc: Installation
  • Doc: Contributing
  • Project: Update roadmap
  • Project: Minimum build environment

Information:

Weave CLI

Weave is the all-powerful ‘docker-compose / kubernetes’ productivity tool for Solidground. A CLI that is easily extensible and provides access to a range of automated tasks, targeting different areas/categories of the Solidground project. It will be used both by Solidground maintainers (Advanced mode) and creators (normal SDK mode).

MLP Use cases:

  • Specgen, docgen, codegen, testgen, projectgen

Focus:

  • Take inspiration from Wasmcloud wash. Use the same/similar design + dependencies.

Techstack:

  • Nickel: Automate config file generation in Rust, boilerplate-free.

Weave SDK

Weave SDK provides guides, bootstrap code, components, plugins and API’s. Anything to help creators be productive quickly on their solution design. Automation of SDK tasks takes place via the Weave CLI.

Solidground SX

(Social experience design: what-we-build)

Solidground SX is the ‘product’ we build (but we don’t use that term). This is our own solution development.

Groundwork Hosting

Groundwork is the foundation for deployment and hosting of social experiences that are packaged as wasm Service Components that can be installed at runtime. Groundwork can run anywhere, in the cloud (server deployment) and on the edge (local client, mobile, small devices) and can be operated without internet connection (local-first).

Goals:

  • Support for runtime-installable Service Components to host social experiences.
  • Support for ActivityPub S2S, via Capability provider (ports & adapters).

MLP Use cases:

  1. Run locally, operated via Weave CLI and Admin UI in Tauri.
  2. Deploy and operate headless remote server back-end.
  3. Transfer local social experience design to remote hosted social experience.
  4. Social experience consists of multiple Service components that integrate.

Techstack:

  • Wasmcloud: Distributed WebAssembly runtime (‘minimum profile’).
  • Concordance: Event sourcing (as out-of-the-box as possible, or Solidground forked/renamed?)

Floorplanner Designer

Floorplanner provides process-oriented collaborative UI where all stakeholders are guided through the Social Experience Design (SX) method that is configured by Taskweave. Floorplanner includes Workspace management and Groundwork admin dashboard. Floorplanner is a social experience itself .

Goals:

  • Cover opinionated Strategic Design process. See Documentation.
  • Support Living documentation and Blueprinting.
  • Offer Diagramming facilities.

MLP Use cases:

  • Workspace management
  • Groundwork administration
  • Strategic design
  • Blueprinting
  • Blueprint deployment

Techstack:

  • Event Catalog (for inspiration mostly + initial use)
  • AsyncAPI (basis for docgen, codegen)
  • d2lang (basis for event modeling, projectgen via AsyncAPI)

Taskweave Engine

Taskweave is a workflow engine that supports long-running processes within the decentralized social network. Workflow definitions are used to automate business processes in solutions for clients, as well as by the Solidground tool suite itself, to provide configurable process guidance via process recipes and steps.

Goals:

  • Support long-running distributed workflows in Wasmcloud event-sourced actor system.
  • Comprehensive workflow automation and support for workflow templates / libs.
  • Process recipes & steps API that is surfaced to Floorplanner Designer.