diff --git a/blog/2026-03-02-8th-wall-open-source.md b/blog/2026-03-02-8th-wall-open-source.md new file mode 100644 index 0000000..c344be8 --- /dev/null +++ b/blog/2026-03-02-8th-wall-open-source.md @@ -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) + + + +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 8thwall.org 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 diff --git a/blog/authors.yml b/blog/authors.yml new file mode 100644 index 0000000..c286aeb --- /dev/null +++ b/blog/authors.yml @@ -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 + 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 diff --git a/blog/tags.yml b/blog/tags.yml new file mode 100644 index 0000000..eaa25e8 --- /dev/null +++ b/blog/tags.yml @@ -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: + label: Release + permalink: /release + +tutorial: + label: Tutorial + permalink: /tutorial + +open-source: + label: Open Source + permalink: /open-source diff --git a/docusaurus.config.js b/docusaurus.config.js index 427f670..00b31bb 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -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', @@ -36,7 +44,7 @@ const config = { }, announcementBar: { id: 'migration', - content: 'The hosted 8th Wall platform was retired Feb 28, 2026. Existing published experiences continue to run until Feb 28, 2027.', + content: 'The hosted 8th Wall platform was retired Feb 28, 2026. Existing published experiences continue to run until Feb 28, 2027.', backgroundColor: '#111', textColor: '#a1a1a1', isCloseable: false, @@ -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' }, { diff --git a/src/components/SiteFooter.jsx b/src/components/SiteFooter.jsx index 616fe16..67f1f5e 100644 --- a/src/components/SiteFooter.jsx +++ b/src/components/SiteFooter.jsx @@ -25,7 +25,7 @@ export default function SiteFooter() { Video Tutorials GitHub Example Projects - Blog + Blog

Get Involved

diff --git a/src/components/SiteNav.jsx b/src/components/SiteNav.jsx index be89188..9c93fab 100644 --- a/src/components/SiteNav.jsx +++ b/src/components/SiteNav.jsx @@ -38,7 +38,7 @@ export default function SiteNav() { Docs Samples Tutorials - Blog + Blog Discord ); diff --git a/src/css/custom.css b/src/css/custom.css index 44c4f3f..3120e4d 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -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; +} diff --git a/src/pages/index.jsx b/src/pages/index.jsx index 4cd13db..b257c6d 100644 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -177,7 +177,7 @@ export default function Home() {
diff --git a/static/img/authors/team_blog_avatar.png b/static/img/authors/team_blog_avatar.png new file mode 100644 index 0000000..6c77cf0 Binary files /dev/null and b/static/img/authors/team_blog_avatar.png differ diff --git a/static/img/blog/open-source-cover.png b/static/img/blog/open-source-cover.png new file mode 100644 index 0000000..ef4a2d4 Binary files /dev/null and b/static/img/blog/open-source-cover.png differ