Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions blog/2026-03-02-8th-wall-open-source.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
title: "Goodbye 8thwall.com. Hello 8thwall.org."
description: "Nearly a decade of XR engine development and WebAR tooling is now in the open."
date: 2026-03-02
authors: [8thwall]
tags: [announcement]
image: /img/blog/open-source-cover.png
slug: 8th-wall-open-source
---

Nearly a decade of XR engine development and WebAR tooling is now in the open.

![8th Wall open source](/img/blog/open-source-cover.png)

<!-- truncate -->

Over the past few months, we shared that 8th Wall would transition from a hosted, paid platform to an open source project. As of February 28, 2026, that transition is complete.

8th Wall now continues at <a href="https://8thwall.org/">8thwall.org</a> as a free, open source XR toolset.

## What's live today

While the hosted 8th Wall platform — login, the cloud editor, and web-based Studio — is no longer available, the technology lives on. The same codebase that powered thousands of WebAR experiences is now open, where it can be inspected, extended, and improved by anyone.

We've released components in stages over the past few months.

In January, we released the [Distributed Engine Binary](https://github.com/8thwall/engine/tree/main). It includes SLAM and is available under a binary-only license for continued commercial and noncommercial use. VPS, Maps, and Hand Tracking are not included.

Today, we're publishing an [MIT-licensed open source version of the engine framework](https://github.com/8thwall/8thwall/tree/main/packages/engine) that does not include SLAM. The core architecture and major AR feature modules — including Face Effects, Image Targets, and Sky Effects — are now available in the open.

SLAM has not been open sourced and will only be available in the Distributed Engine Binary. But with the rest of the framework now open, the engine isn't frozen in place. As browser APIs change and web standards evolve, the community can maintain and adapt it without depending on us.

Several supporting tools are also available:

- [Sample projects](https://8th.io/examples), including starter templates, feature demos, and best practice references
- [Image Target Processor CLI](https://github.com/8thwall/8thwall/tree/main/apps/image-target-cli), a tool for creating new image targets for use with the XR engine
- [Archive](https://github.com/8thwall/archive), a cleaned snapshot of the 8th Wall monorepo, is available for reference

All of this is governed by a formal open source model, with contribution guidelines and decision-making processes documented in the [repository](https://github.com/8thwall/8thwall).

## What's coming next

Today is a major milestone, but the transition isn't finished.

Over the next month, we'll complete the next wave of releases, including updated documentation fully migrated to GitHub, the full open source release of the Desktop App, open source ECS runtime components, MCP server, and additional sample projects and reference implementations.

We're shipping as quickly as we can do it right. [GitHub](https://github.com/orgs/8thwall/discussions) and [Discord](https://8th.io/discord) are where updates will land first.

## Thank you for building with us

To our community of developers, brands, and agencies: thank you.

Since we announced the closing of 8th Wall, you've shown up with thoughtfulness, tough questions, honest feedback, and patience. That input shaped everything you see on 8thwall.org today.

We're proud of what we built together, and grateful for the trust you placed in us.

This is a community project now. If you want to help shape what 8th Wall becomes next, review the [governance](https://github.com/8thwall/8thwall/blob/main/GOVERNANCE.md) and [contribution](https://github.com/8thwall/8thwall/blob/main/CONTRIBUTING.md) docs in the repo and join us in the open.

— The 8th Wall Team
16 changes: 16 additions & 0 deletions blog/authors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Blog author profiles.
# Reference these keys in post front matter: authors: [8thwall]
# Multiple authors: authors: [8thwall, jane]

8thwall:
name: 8th Wall
title: 8th Wall Team
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like this would be duplicated with the name, can we leave it out?

image_url: /img/authors/team_blog_avatar.png

# Add individual authors below. Avatar images go in static/img/authors/.
# Example:
# jane:
# name: Jane Smith
# title: Developer Advocate
# url: https://github.com/janesmith
# image_url: /img/authors/jane.jpg
19 changes: 19 additions & 0 deletions blog/tags.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Canonical tag definitions for blog posts.
# Posts can use any tag string, but tags listed here get a custom
# display label and permalink.

announcement:
label: Announcement
permalink: /announcement

release:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can add these other tags once we have these types of posts.

label: Release
permalink: /release

tutorial:
label: Tutorial
permalink: /tutorial

open-source:
label: Open Source
permalink: /open-source
12 changes: 10 additions & 2 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ const config = {
path: 'blog',
routeBasePath: 'blog',
showReadingTime: false,
blogSidebarTitle: 'Recent posts',
blogSidebarCount: 10,
feedOptions: {
type: 'all',
title: '8th Wall Blog',
description: 'News and updates from 8th Wall',
copyright: `Copyright © ${new Date().getFullYear()} 8th Wall`,
},
},
theme: {
customCss: './src/css/custom.css',
Expand All @@ -36,7 +44,7 @@ const config = {
},
announcementBar: {
id: 'migration',
content: '<span class="announcement-text">The hosted 8th Wall platform was retired Feb 28, 2026. Existing published experiences continue to run until Feb 28, 2027.</span><span class="announcement-btns"><a target="_blank" rel="noopener" href="https://8th.io/migration" class="banner-btn">View Migration Guide</a><a target="_blank" rel="noopener" href="https://8th.io/blog" class="banner-btn">View Announcements</a></span>',
content: '<span class="announcement-text">The hosted 8th Wall platform was retired Feb 28, 2026. Existing published experiences continue to run until Feb 28, 2027.</span><span class="announcement-btns"><a target="_blank" rel="noopener" href="https://8th.io/migration" class="banner-btn">View Migration Guide</a><a target="_blank" rel="noopener" href="/blog" class="banner-btn">View Announcements</a></span>',
backgroundColor: '#111',
textColor: '#a1a1a1',
isCloseable: false,
Expand All @@ -54,7 +62,7 @@ const config = {
{ href: 'https://github.com/8thwall', label: 'GitHub', position: 'left' },
{ href: 'https://8th.io/examples', label: 'Samples', position: 'left' },
{ href: 'https://www.youtube.com/@8thwall', label: 'Tutorials', position: 'left' },
{ href: 'https://8th.io/blog', label: 'Blog', position: 'left' },
{ to: '/blog', label: 'Blog', position: 'left' },
{ href: 'https://8th.io/discord', label: 'Discord', position: 'left' },
{ href: 'https://www.8thwall.com/docs', label: 'Docs', position: 'left' },
{
Expand Down
2 changes: 1 addition & 1 deletion src/components/SiteFooter.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export default function SiteFooter() {
<a href="https://www.youtube.com/@8thwall" target="_blank" rel="noopener">Video Tutorials</a>
<a href="https://github.com/8thwall" target="_blank" rel="noopener">GitHub</a>
<a href="https://8th.io/examples" target="_blank" rel="noopener">Example Projects</a>
<a href="https://8th.io/blog" target="_blank" rel="noopener">Blog</a>
<a href="/blog">Blog</a>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Best practice would be to use <Link> instead of <a> on all same-origin paths.

</div>
<div className="footer-column">
<h2 className="footer-heading">Get Involved</h2>
Expand Down
2 changes: 1 addition & 1 deletion src/components/SiteNav.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export default function SiteNav() {
<a href="https://8thwall.com/docs/" target="_blank" rel="noopener">Docs</a>
<a href="https://8th.io/examples" target="_blank" rel="noopener">Samples</a>
<a href="https://www.youtube.com/@8thwall" target="_blank" rel="noopener">Tutorials</a>
<a href="https://8th.io/blog" target="_blank" rel="noopener">Blog</a>
<Link to="/blog">Blog</Link>
<a href="https://8th.io/discord" target="_blank" rel="noopener">Discord</a>
</>
);
Expand Down
46 changes: 46 additions & 0 deletions src/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -1832,3 +1832,49 @@ body.nav-open .nav-drawer {
.navbar-sidebar__backdrop {
transition: none !important;
}

/* Hide announcement bar on blog pages */
.blog-post-page div[class*="announcementBar"],
.blog-list-page div[class*="announcementBar"] {
display: none !important;
}

/* Blog post body — improve readability for long-form content.
Switch from monospace to sans-serif, soften contrast, increase line spacing.
Applied to both the post page and the list page excerpt. */
.blog-post-page .markdown,
.blog-list-page .markdown,
.blog-tags-post-list-page .markdown {
font-family: 'Geist', -apple-system, BlinkMacSystemFont, sans-serif;
font-size: 1.0625rem;
line-height: 1.8;
color: #c8c8c8;
}

.blog-post-page .markdown h1,
.blog-post-page .markdown h2,
.blog-post-page .markdown h3,
.blog-post-page .markdown h4 {
color: #ffffff;
font-family: var(--ifm-heading-font-family);
}

.blog-post-page .markdown a {
color: var(--ifm-color-primary-light);
}

.blog-post-page .markdown a:hover {
color: #ffffff;
}

/* Scroll offset for TOC anchor links — keep headings below the sticky navbar */
.theme-doc-markdown h1,
.theme-doc-markdown h2,
.theme-doc-markdown h3,
.theme-doc-markdown h4,
.markdown h1,
.markdown h2,
.markdown h3,
.markdown h4 {
scroll-margin-top: 88px;
}
2 changes: 1 addition & 1 deletion src/pages/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ export default function Home() {
<ul className="involve-list">
<li><a href="https://8th.io/discord" target="_blank" rel="noopener">Join the Discord</a></li>
<li><a href="https://github.com/orgs/8thwall/discussions" target="_blank" rel="noopener">GitHub Discussions</a></li>
<li><a href="https://8th.io/blog" target="_blank" rel="noopener">Follow the blog</a></li>
<li><a href="/blog">Follow the blog</a></li>
</ul>
</div>
<div className="involve-card">
Expand Down
Binary file added static/img/authors/team_blog_avatar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/blog/open-source-cover.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading