Skip to content

hoh-zone/hoh.zone

Repository files navigation

Sui Builder Hub

Sui Builder Hub is a one-stop learning, building, hackathon, bounty, and community platform for the Sui ecosystem.

The project is intentionally split into independent applications:

  • apps/web: public user-facing site built with Next.js and React.
  • apps/admin: administrator and organizer console built with Vite React.
  • apps/docs: Docusaurus documentation and MDX learning content.
  • services/api: Rust API built with axum and Toasty.
  • services/worker: Rust background worker for GitHub docs sync, Docusaurus builds, search indexing, and notifications.
  • crates/*: shared Rust crates for domain models, DB access, auth, search, and storage.

Current product surface includes learning tracks, articles, GitHub-synced Markdown docs, ideas, bounties, hackathons, reviewed project galleries, winner showcases, search, and a separate admin console.

Local Development

pnpm install
pnpm dev:web
pnpm dev:admin
pnpm dev:docs
cargo run -p api

Database schema changes are managed through Toasty migrations:

scripts/migrate-generate.sh init_schema
DATABASE_URL=postgresql://sui_builder:sui_builder@localhost:5432/sui_builder scripts/migrate-apply.sh

See docs/MIGRATIONS.md for the workflow.

For a fresh local database, run the combined bootstrap after Postgres is available:

scripts/bootstrap-local.sh

It applies migrations and seeds demo content. Set RUN_VALIDATE=1 to run the full build validation after seeding, or SKIP_PNPM_INSTALL=1, SKIP_MIGRATIONS=1, and SKIP_SEED=1 to skip individual steps.

The first implementation milestone is the shell product: navigation, visual system, service skeletons, core routes, and validation docs. The next milestone is functional Sui wallet authentication and the first CRUD modules.

Worker Docs Build

Docs build jobs default to:

pnpm --filter @sui-builder-hub/docs build

Configure production workers with DOCUSAURUS_BUILD_CWD, DOCUSAURUS_BUILD_OUTPUT_DIR, and DOCUSAURUS_BUILD_TIMEOUT_SECONDS. The worker marks a build job failed if the command exits non-zero, times out, or does not produce the configured output directory.

Operations

The API exposes /health and /health/live for liveness and /health/ready for readiness. Readiness checks database access and reports whether zkLogin JWKs are loaded, unloaded from configured sources, or not configured.

Strict wallet verification supports Ed25519, Secp256k1, Secp256r1, passkey, multisig from enabled schemes, and zkLogin when JWKs are configured. Use AUTH_ZKLOGIN_JWKS_JSON for static keys or AUTH_ZKLOGIN_JWKS_URLS_JSON for startup refresh from trusted issuer JWKS endpoints.

Rate limits cover auth, article publishing, article image uploads, and bounty creation/submission. They use in-memory buckets locally or Redis when AUTH_RATE_LIMIT_BACKEND=redis.

The local deployment stack includes Postgres, Redis, Meilisearch, MinIO, API, worker, web, admin, and docs:

docker compose -f infra/compose.yaml up --build

The compose worker disables Docusaurus build jobs by default because the docs image builds and serves the static site directly. Production workers can enable DOCUSAURUS_BUILD_COMMAND when Node and pnpm are available in the worker image.

About

HOH

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors