18 Commits

Author SHA1 Message Date
28bef26fbc refactor: remove GetStarted section and consolidate with CallToAction component 2025-10-22 11:38:05 +02:00
73fe0e7c8e feat: add GetStarted section and rename deploy section to how-it-works 2025-10-22 11:34:16 +02:00
c59c09eee8 refactor: replace mailerlite popup with direct mailto link for waitlist signup 2025-10-22 11:32:04 +02:00
75b660d81e Merge branch 'main' into development 2025-10-20 13:56:07 +02:00
3f86c7e87f docs: add development guide and dependencies section to README 2025-10-20 13:55:50 +02:00
1c2c274848 Update README.md 2025-10-15 10:37:16 +00:00
74d5bae622 Merge branch 'main' into development 2025-10-15 12:00:50 +02:00
1577eb6c6c Update README.md 2025-10-15 09:56:06 +00:00
f4519ec8bf Update README.md 2025-10-15 09:55:00 +00:00
c09928018c docs: add deployment URLs, tech stack, and contribution guidelines to README 2025-10-15 11:50:47 +02:00
f5e5063ba1 update Join the Waitlist button 2025-10-08 12:24:30 +03:00
54333f2bd5 refactor: reposition BentoReviews section below ClickableGallery 2025-10-05 16:49:39 +02:00
e646198255 style: adjust companies section margin and remove negative top positioning 2025-10-05 05:39:07 +02:00
5f1774f03c refactor: reorder homepage sections to show network map before technologies 2025-10-01 12:25:19 +02:00
d52190268a Merge branch 'development' 2025-09-30 17:00:22 +02:00
8b2bbb2536 ok 2025-09-30 15:58:36 +02:00
6f8edae241 Merge branch 'development' 2025-09-29 19:37:09 +02:00
acbbc7445d k 2025-09-29 19:28:00 +02:00
10 changed files with 177 additions and 76 deletions

168
README.md
View File

@@ -1,83 +1,151 @@
# Mycelium Cloud Website
# Project Mycelium Website
- **Repository:** [https://git.ourworld.tf/ourworld_web/www_project_mycelium/](https://git.ourworld.tf/ourworld_web/www_project_mycelium/)
- **Main Branch (Production):** [https://project.mycelium.tf/](https://project.mycelium.tf/)
- **Dev Branch (Staging):** [https://www2.project.mycelium.tf/](https://www2.project.mycelium.tf/)
---
## About
This is the official website for Mycelium Cloud, built using Next.js and Tailwind CSS.
## Getting Started
---
Follow these instructions to get a local copy up and running for development and testing purposes.
## Technologies
### Prerequisites
- **Framework**: [Next.js](https://nextjs.org/)
- **Language**: [TypeScript](https://www.typescriptlang.org/)
- **Styling**: [Tailwind CSS](https://tailwindcss.com/)
Make sure you have Node.js and npm installed on your machine. You can download them from [nodejs.org](https://nodejs.org/).
---
### Installation
## Dependencies
- **UI**: [@headlessui/react](https://headlessui.com/)
- **Animation**: [framer-motion](https://www.framer.com/motion/)
- **Utilities**: [clsx](https://github.com/lukeed/clsx), [use-debounce](https://github.com/xnimorz/use-debounce)
---
## File Structure
- **Pages**: To edit the content of a specific page, navigate to `src/app/(main)/`.
- **Components**: Reusable components are located in `src/components/`.
- **Images**: Add or modify images in the `public/images/` directory.
- **CSS**: Global styles can be found in `src/styles/tailwind.css`. Most styling is done using Tailwind CSS utility classes directly in the `.tsx` files.
---
## Branding
- **Font**: The primary font used is [Mulish](https://fonts.google.com/specimen/Mulish).
- **Logos**: Project logos are stored in `public/images/logos/`.
---
## Get Started
Follow these steps to get the project running locally:
1. **Install Dependencies**:
1. Clone the repository to your local machine.
2. Install the NPM packages:
```bash
npm install
```
### Running the Application
To run the development server:
2. **Build the Project**:
```bash
npm run dev
npm run build
```
Open [http://localhost:3000](http://localhost:3000) in your browser to see the result.
3. **Start the Development Server**:
## Git Workflow
We follow a branching model to ensure code quality and a stable production environment. All new work should be done on a feature branch.
1. **Switch to the `development` branch** and make sure it's up to date:
```bash
git checkout development
git pull origin development
npm run start
```
2. **Create a new feature branch** for your changes:
```bash
git checkout -b your-feature-name
---
## Development Guide
This project follows a modular, component-based architecture. Pages are assembled by combining reusable components into a single layout.
### Homepage Structure
The homepage (`src/app/(main)/page.tsx`) is composed of the following components:
- `HomeHero`
- `WorldMap`
- `StackSectionPreview`
- `Steps`
- `Companies`
- `ClickableGallery`
- `BentoReviews`
- `CallToAction`
To edit a specific section of the homepage, navigate to `src/components/` and modify the corresponding component file.
### Base Layout
The main layout for the application is defined in `src/components/Layout.tsx`. This file includes the `Header` and `Footer` and wraps the primary content of each page.
### Creating a New Page
To create a new page, follow these steps:
1. **Create a Folder**: Inside the `src/app/(main)/` directory, create a new folder with the desired URL slug for your page (e.g., `new-page`).
2. **Create the Page File**: Inside the new folder, create a `page.tsx` file.
3. **Add Page Content**: Compose your page by importing and using the reusable components from `src/components/`. For example:
```tsx
import { HomeHero } from '@/components/HomeHero'
import { Faqs } from '@/components/Faqs'
export default function NewPage() {
return (
<>
<HomeHero />
<Faqs />
</>
)
}
```
3. **Make your changes and commit them**.
The new page will be accessible at `http://localhost:3000/new-page`.
4. **Push your feature branch** to the remote repository:
```bash
git push origin your-feature-name
```
---
5. **Create a Pull Request** on GitHub from your feature branch to the `development` branch.
## Contributing
6. After the pull request is reviewed and merged, the changes will be on the `development` branch. To deploy to production, the `development` branch will be merged into `main`.
- **Never update the `main` branch directly.** All changes must be reviewed and merged by the team through a pull request.
- **Always work on the `development` branch.** Create a feature branch from `development` and submit your pull request to `development`.
- **Request a review.** After submitting your pull request, ask the team to review and accept it into the `main` branch.
## Project Structure
---
Here is an overview of the key directories in the project:
## Report an Error
- `src/app/(main)/page.tsx`
This is the main entry point for the homepage.
To report an issue, please use the following link and provide the requested information:
- `src/components/`
This directory contains all the reusable React components used throughout the site. The main components rendered on the homepage (`src/app/(main)/page.tsx`) are:
- `HomeHero.tsx`
- `StackSection.tsx` (as `StackSectionPreview`)
- `BentoReviews.tsx`
- `WorldMap.tsx`
- `Steps.tsx`
- `Companies.tsx`
- `ClickableGallery.tsx`
- `CallToAction.tsx`
- **Issue Tracker**: [git.ourworld.tf/ourworld_web/HOME/issues/new](https://git.ourworld.tf/ourworld_web/HOME/issues/new) and tag **OW Website & Wiki Project 2025**
- `public/images/`
All static images are stored here. You can find logos, gallery images, and other visual assets in this folder.
- See the current web rpoject on [OW Website & Wiki Project 2025](https://git.ourworld.tf/ourworld_web/-/projects/153)
- `public/videos/`
This folder contains video assets used on the site.
When reporting an issue, please include:
## License
- **URL**: The page where the error occurred.
- **Repo**: The repository you are working with.
- **Branch**: The specific branch you are on.
- **Problem**: A detailed description of the problem.
This site template is a commercial product and is licensed under the [Tailwind Plus license](https://tailwindcss.com/plus/license).
---
## Questions
If you have any questions, you can reach out to [sashaastiadi](https://git.ourworld.tf/sashaastiadi).

View File

@@ -21,16 +21,13 @@ export default function Home() {
<section id="home-hero">
<HomeHero />
</section>
<section id="technologies">
<StackSectionPreview />
</section>
<section id="bento-reviews">
<BentoReviews />
</section>
<section id="network">
<WorldMap />
</section>
<section id="deploy">
<section id="technologies">
<StackSectionPreview />
</section>
<section id="how-it-works">
<Steps />
</section>
<section id="llms">
@@ -39,7 +36,10 @@ export default function Home() {
<section id="clickable-gallery">
<ClickableGallery />
</section>
<section id="call-to-action">
<section id="bento-reviews">
<BentoReviews />
</section>
<section id="get-started">
<CallToAction />
</section>
</>

View File

@@ -1,4 +1,5 @@
import { type Metadata } from 'next'
import Script from 'next/script'
import { Mulish } from 'next/font/google'
import clsx from 'clsx'
@@ -26,6 +27,19 @@ export default function RootLayout({
}) {
return (
<html lang="en" className={clsx('antialiased', mulish.variable)}>
<head>
{/* MailerLite Universal */}
<Script id="mailerlite-universal" strategy="afterInteractive">
{`(function(m,a,i,l,e,r){ m['MailerLiteObject']=e;function f(){
var c={ a:arguments,q:[]};var r=this.push(c);return "number"!=typeof r?r:f.bind(c.q);}
f.q=f.q||[];m[e]=m[e]||f.bind(f.q);m[e].q=m[e].q||f.q;r=a.createElement(i);
var _=a.getElementsByTagName(i)[0];r.async=1;r.src=l+'?v'+(~~(new Date().getTime()/1000000));
_.parentNode.insertBefore(r,_);})(window, document, 'script', 'https://static.mailerlite.com/js/universal.js', 'ml');
var ml_account = ml('accounts', '1778010', 'x2d3d9f8n1', 'load');`}
</Script>
{/* End MailerLite Universal */}
</head>
<body className="bg-black text-white">{children}</body>
</html>
)

View File

@@ -92,7 +92,7 @@ export function BentoReviews() {
return (
<div>
<div className="relative isolate pt-24 pb-12 bg-black text-center w-full lg:px-0 px-4">
<div className="relative isolate py-24 bg-black text-center w-full lg:px-0 px-4">
<FadeIn transition={{ duration: 0.8, delay: 0.1 }}>
<div className="mx-auto max-w-5xl ">
<H2 className="text-center">Augmented Intelligence Fabric</H2>

View File

@@ -1,3 +1,5 @@
"use client"
import { H2, P } from '@/components/Texts'
export function CallTo() {
@@ -20,7 +22,10 @@ export function CallTo() {
>
Book a Meeting
</a>
<a href="mailto:info@ourworld.tf" target="_blank" rel="noopener noreferrer" className="text-sm/6 font-semibold text-[#2F3178] hover:text-[#2F3178]/80">
<a
href="mailto:info@ourworld.tf"
className="text-sm/6 font-semibold text-[#2F3178] hover:text-[#2F3178]/80"
>
Join the Waitlist <span aria-hidden="true"></span>
</a>
</div>

View File

@@ -1,3 +1,5 @@
'use client'
import { CircleBackground } from '@/components/CircleBackground'
import { Container } from '@/components/Container'
import { Button } from '@/components/Button'
@@ -42,7 +44,11 @@ export function CallToAction() {
>
Book a Meeting
</Button>
<Button href="mailto:info@ourworld.tf" target="_blank" rel="noopener noreferrer" variant="outline" color="white">
<Button
variant="outline"
color="white"
href="mailto:info@ourworld.tf"
>
Join the Waitlist
</Button>
</div>

View File

@@ -40,7 +40,7 @@ const row2 = logos.slice(6);
export function Companies() {
return (
<div id="companies" className="relative bg-black flex flex-col items-center justify-center w-full overflow-hidden antialiased py-4 -top-20">
<div id="companies" className="relative bg-black flex flex-col items-center justify-center w-full overflow-hidden antialiased py-4 mb-12">
<div className="relative z-10 mx-auto w-full max-w-6xl p-4">
{/* Heading */}

View File

@@ -110,7 +110,11 @@ export function Header() {
<NavLinks className="block text-base/7 tracking-tight" />
</div>
<div className="mt-8 flex flex-col gap-4">
<Button href="mailto:info@ourworld.tf" variant="outline" color="white" target="_blank" rel="noopener noreferrer">
<Button
variant="outline"
color="white"
href="mailto:info@ourworld.tf"
>
Join the Waitlist
</Button>
<Button href="https://calendly.com/sachao/30min" color="cyan">Book a Meeting</Button>
@@ -123,7 +127,11 @@ export function Header() {
)}
</Popover>
<div className="flex items-center gap-6 max-lg:hidden">
<Button href="mailto:info@ourworld.tf" variant="outline" color="white" target="_blank" rel="noopener noreferrer">
<Button
variant="outline"
color="white"
href="mailto:info@ourworld.tf"
>
Join the Waitlist
</Button>
<Button href="https://calendly.com/sachao/30min" color="cyan">Book a Meeting</Button>

View File

@@ -30,7 +30,7 @@ export function Steps() {
const isInView = useInView(ref, { once: true });
return (
<section id="benefits" ref={ref} className="relative pt-16 pb-4 px-4 lg:px-12 -top-20 text-white">
<section id="benefits" ref={ref} className="relative pt-12 pb-4 px-4 lg:px-12 text-white">
<div className="relative px-6 lg:px-12">
<motion.div
initial={{ opacity: 0, y: 20 }}

View File

@@ -8,25 +8,25 @@ const stackData = [
{
id: "agent",
title: "Agent Layer",
descriptionTitle: "Personal Agents - Secure & Sovereign",
descriptionTitle: "Your sovereign agent with private memory and permissioned data access—always under your control.",
description:
"Personal AI agents operate as secure digital twins, providing tailored intelligent assistance. They interact with existing chat, MCP agents, and coding tools while maintaining sovereignty and ecosystem compatibility.",
"Choose from a wide library of open-source LLMs, paired with built-in semantic search and retrieval.\nIt coordinates across people, apps, and other agents to plan, create, and execute.\nIt operates inside a compliant legal & financial sandbox, ready for real-world transactions and operations.\nMore than just an assistant—an intelligent partner that learns and does your way.",
position: "top",
},
{
id: "ai",
title: "AI Layer",
descriptionTitle: "AI Agents & AI Brains + Mycelium Code & Compute Sandboxes",
id: "network",
title: "Network Layer",
descriptionTitle: "A global, end-to-end encrypted overlay that simply doesnt break.",
description:
"Intelligence core combining LLMs with specialized AI agents. Mycelium-powered sandboxes provide secure environments for development, testing, and compilation with active memory systems and unbreakable network architecture.",
"Shortest-path routing moves your traffic the fastest way, every time.\nInstant discovery with integrated DNS, semantic search, and indexing.\nA distributed CDN and edge delivery keep content available and tamper-resistant worldwide.\nBuilt-in tool services and secure coding sandboxes—seamless on phones, desktops, and edge.",
position: "middle",
},
{
id: "cloud",
title: "Cloud Layer",
descriptionTitle: "Mycelium Compute & Storage - Decentralized Infrastructure Layer",
descriptionTitle: "An autonomous, stateless OS that enforces pre-deterministic deployments you define.",
description:
"Foundation runs bare metal Zero OS enabling autonomous cloud. Decentralized infrastructure supports Web2, Web3, AI workloads with superior scalability. Built on twenty years cloud experience.",
"Workloads are cryptographically bound to your private key—location and access are yours.\nNo cloud vendor or middleman in the path: end-to-end ownership and isolation by default.\nGeo-aware placement delivers locality, compliance, and ultra-low latency where it matters.\nEncrypted, erasure-coded storage, decentralized compute and GPU on demand—including LLMs.",
position: "bottom",
},
];