v0.4.0 — Phase 1 Microsite
Rich, customizable landing pages with image galleries, FAQs, partner logos, and embedded videos. Tenants can now build their complete public web presence directly in StandShare without coding.
Highlights
The landing page evolved. What started as a single hero section is now a full-featured internal CMS where tenants compose their public web presence from modular section types. Admins drag-and-drop sections, add rich text, upload images, and go live in minutes.
New Features
Image Galleries
Upload up to 100 images (500 MB total on free tier) and arrange them in grid or masonry layouts.
- Multiple layouts: 3-column grid, 4-column grid, or masonry
- Lightbox preview: Click any image to see a full-screen viewer
- Alt text for accessibility: Every image requires alt text to meet WCAG standards
- Image library: Reuse images across sections without re-uploading
FAQ Accordion
Create collapsible FAQ sections with rich text answers.
- Drag-to-reorder questions for logical flow
- Rich text support: Format answers with bold, italic, links, and headings
- Auto-anchor nav: FAQ titles appear in the sticky sidebar for easy jumping
Partner & Sponsor Logos
Showcase partner organizations with their logos and optional links.
- Grid layout with customizable link targets
- Image handling: Upload logos or paste external image URLs
- Auto-sizing: Logos scale uniformly while maintaining aspect ratio
Embedded Videos
Embed YouTube and Vimeo videos directly on your microsite.
- Supported providers: YouTube and Vimeo only (strict allowlist for security)
- Responsive sizing: Videos scale to fit mobile and desktop screens
- No raw URLs: Video IDs are extracted and stored; raw URLs never saved
Auto-Generated Anchor Navigation
Every section's title automatically appears in a sticky sidebar nav.
- Smooth scrolling: Click any section title to jump to that section
- Active highlight: Current section is highlighted as you scroll
- Mobile-friendly: Nav collapses on small screens to save space
Rich Text Editing
Tiptap-powered rich text in FAQ answers and custom text sections.
- Inline formatting: Bold, italic, and links
- Structured content: Headings and paragraphs
- Safe sanitization: XSS protection via server-side allowlist
Important Limitations
Publishing is page-level, not section-level. When you click "Publish," all pending changes across every section on the page go live at once. There's no way to publish a single section in isolation. If you have changes you want to keep as draft while publishing others, save them and leave that section unpublished until you're ready.
We're tracking demand for per-section drafts — let us know if this workflow is a pain point for your team.
Image Quotas
- Free tier: 100 images, 5 MB per image, 500 MB total per org
- Paid tier: 500 images, 10 MB per image, 5 GB total per org
Overages are rejected with a clear error message prompting you to delete unused images or upgrade your plan.
Media Privacy
Images you upload are served from a public CDN (media.standshare.app). Anyone with the image URL can view it. Ensure you have the right to upload every image — StandShare is not the copyright owner. By uploading, you grant StandShare a hosting license for the duration of your plan.
Technical Details
- Database: Page drafts tracked via
microsite_pages.published_at(NULL = draft) - Sections: Stored as JSON in
microsite_sections.content; validated against the section registry on save - Rich text: Stored as ProseMirror JSON; sanitized at write time, never with
dangerouslySetInnerHTMLat render - Public routes: Tenant resolution via subdomain-authoritative model (no X-Tenant-Slug trust)
Coming Soon
- Per-section draft state (future version)
- Section templates and cloning
- Analytics dashboard integration
- Scheduled publish dates
