title:
build.moi
description:
A new creative home for your Val Town projects
imageUrl:
https://chatgpt.com/backend-api/public_content/enc/eyJpZCI6Im1fNjgwZDBmMmI2OWQ0ODE5MWJjNjI4NDdkZDNhOTJiOTA6ZmlsZV8wMDAwMDAwMGFjYzQ2MjMwOGE3NTIxMTE1MmVlYTNlMyIsInRzIjoiNDg0OTEyIiwicCI6InB5aSIsInNpZyI6ImI5YjNkOWNlMmVmZDE2NTlhYzgwMjYzYzE2ZThjYjA1N2RjOTM5MDFkNjhkNTA1OTE5YjBhYzI4OTM2ZDgyMTMiLCJ2IjoiMCIsImdpem1vX2lkIjpudWxsfQ==
url:
https://dcm31--199443aefb4c4d6a9062b10c53996a6b.web.val.run
author:
dcm31
tags:
showcase
gallery
profile
val-town
typescript
tier:
1
excludeFromPosts:
true

build.moi

build.moi provides a modern showcase for Val Town profiles, making it easy to browse and discover vals and projects in a clean, minimalist layout.

Features

  • Clean grid layout for vals and projects
  • Posts tab shows vals with moi.md and links to live apps
  • Code tab shows all vals and links to their source code
  • Custom Tabs for organizing content into collections
  • Priority ranking system for organizing content display order
  • Content exclusion from the main Posts tab
  • Direct val viewing with full-screen display
  • 2:3 aspect ratio for all val cards
  • Profile view with user details
  • Hover effects to display val information
  • Responsive design for all devices
  • Custom profile configuration via moi.md
  • Infinite content loading without pagination

Usage

Visit the main page and enter a Val Town username, or go directly to:

/@username

You can also view a specific val directly using:

/@username/valname

Custom Configuration

build.moi supports custom profile and val configuration through moi.md files. Add a moi.md file to your Val Town project root with YAML frontmatter to customize your profile display in build.moi.

Supported Configuration Options

  • title: Custom display title
  • description: Extended description
  • imageUrl: Custom image URL to override the default (2:3 aspect ratio recommended)
  • url: Direct URL to your app's live endpoint (used in Posts tab)
  • author: Custom author display name
  • tags: Array of tags for categorization
  • tier: Priority level for display order (lower numbers appear first, can use decimal values like 1.5)
  • tabs: Array of tab names where this content should appear
  • excludeFromPosts: Boolean to exclude content from the main Posts tab (true/false)

Priority System

The tier field determines the display order of your content:

  • Lower tier values (e.g., 1) appear before higher values (e.g., 3)
  • Decimal values are supported (e.g., 0.5, 1.3, 2.7)
  • Items with the same tier value maintain their original order
  • Items without a tier value appear after all items with tier values

Example:

tier: 1.5

Custom Tabs

The tabs field allows you to categorize your content into custom collections:

  • Content can belong to multiple tabs by listing multiple tab names
  • Tabs appear between the "Posts" and "Code" navigation items
  • Each tab contains only content explicitly assigned to it

Example:

tabs: ["Projects", "Tutorials", "Experiments"]

Exclude From Posts

The excludeFromPosts field lets you exclude content from the main Posts tab while keeping it in custom tabs:

  • When set to true, the val won't appear in the main Posts tab
  • The val will still appear in any custom tabs specified in the tabs field
  • The val will always appear in the Code tab regardless of this setting

Example:

excludeFromPosts: true tabs: ["Tutorials"]

This configuration would show the val in the "Tutorials" tab and the Code tab, but not in the main Posts tab.