Ship marketing sites that load instantly. Zero unnecessary JavaScript, beautiful components, and the developer experience you love.
Everything you need
Simple, transparent pricing
Why performance matters
Modern marketing websites have become increasingly JavaScript-heavy. The average web page now ships over 500KB of JavaScript, and component libraries built on
React
A JavaScript library for building user interfaces. React alone adds ~42KB (gzipped) to your bundle before any components.
add significant overhead. Every component on the page needs to
Hydration
The process where the browser downloads JavaScript, parses it, and attaches event listeners to server-rendered HTML. Even static text paragraphs need hydration in React.
— including static text content that never changes.
This is particularly problematic for long-form content. Blog posts, landing pages, and documentation sites are content-first by nature, yet frameworks like Next.js require the full
Virtual DOM
A programming concept where a virtual representation of the UI is kept in memory and synced with the real DOM. This reconciliation process has a cost proportional to the number of nodes.
runtime to reconcile every text node, heading, and paragraph. The more content on the page, the higher the cost.
Consider a marketing page with a navigation menu, pricing tables, testimonials, and a contact form. In a traditional React setup, the browser must download, parse, and execute JavaScript for
Base UI
A headless component library for React that provides accessible controls and interaction behavior. Both shadcn demos in this benchmark use Base UI.
state management, event delegation, and the component tree itself — even for sections that are purely presentational.
The alternative is to use a server-first approach where components render to plain HTML by default. Interactive elements like
Navigation Menu
A complex component requiring hover detection, keyboard navigation, focus management, and animated transitions. Its JavaScript cost depends on the implementation and the components included in the page.
and tooltips use lightweight
data-slot Primitives
Vanilla JavaScript behavior modules that attach to HTML elements via data attributes. No framework runtime needed — just the bare minimum JS for interactivity.
that add only the JavaScript strictly necessary for behavior — no framework, no virtual DOM, no hydration.
Frequently asked questions
While inspired by shadcn/ui's copy-and-own approach, our
components are built natively for Astro. They compile to pure HTML
and CSS with zero React runtime overhead. Interactive components use lightweight data-slot primitives. The React demos use Base UI.
The components are designed for Astro's .astro file format.
However, Astro supports islands architecture, so you can mix these
components with React or Vue islands where you need complex
client-side state.
All interactive components include proper ARIA attributes, keyboard
navigation, and focus management. The data-slot primitives handle
accessibility patterns like roving tabindex, aria-expanded, and
screen reader announcements.
JavaScript payload depends on the components and framework used. This benchmark measures the production output of the same page in all three implementations.
Yes. The component library is used in production on multiple
Bejamas client projects and our own marketing sites. It's actively
maintained with regular updates and security patches.
Run npx bejamas add to start adding components to your Astro
project. Each component is copied into your codebase where you have
full control to customize it.
Get in touch
Make it yours
Small controls, thoughtful details. Try the everyday interactions that make a website feel complete.
Your privacy, your choice
Choose which cookie categories you allow and change your mind at any time.
Cookie preferences
Choose what you share. Necessary cookies stay on; everything else is optional.
Necessary
Required for basic site functions. Always enabled.
Analytics
Help us understand which pages are useful.
Marketing
Allow content and offers tailored to your interests.
Demo only. These controls do not enable tracking.
Only necessary cookies enabled
Stay in the loop
Catch up on product news without leaving the page you are reading.
What's new
Your latest product updates.
Cookie controls are here
Fine-tune your preferences in one place.
A smoother navigation
Explore products with your mouse or keyboard.
2 unread updates
A little more control
Keep helpful tips close and choose how often you hear from us.