Compare commits
8 Commits
6f8edae241
...
developmen
Author | SHA1 | Date | |
---|---|---|---|
74d5bae622 | |||
c09928018c | |||
f5e5063ba1 | |||
54333f2bd5 | |||
e646198255 | |||
5f1774f03c | |||
d52190268a | |||
8b2bbb2536 |
109
README.md
109
README.md
@@ -1,83 +1,88 @@
|
|||||||
# Mycelium Cloud Website
|
# Mycelium Cloud Website
|
||||||
|
|
||||||
|
- **Main Branch:** [https://project.mycelium.tf/](https://project.mycelium.tf/)
|
||||||
|
- **Dev Branch:** [https://www2.project.mycelium.tf/](https://www2.project.mycelium.tf/)
|
||||||
|
- **Repository:** [https://git.ourworld.tf/ourworld_web/www_project_mycelium/](https://git.ourworld.tf/ourworld_web/www_project_mycelium/)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
This is the official website for Mycelium Cloud, built using Next.js and Tailwind CSS.
|
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
|
## 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 and Videos**: Add or modify images and videos in the `public/` directory. Images are in `public/images/` and videos are in `public/videos/`.
|
||||||
|
- **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
|
```bash
|
||||||
npm install
|
npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
### Running the Application
|
2. **Build the Project**:
|
||||||
|
|
||||||
To run the development server:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
Open [http://localhost:3000](http://localhost:3000) in your browser to see the result.
|
|
||||||
|
|
||||||
## 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
|
```bash
|
||||||
git checkout development
|
npm run build
|
||||||
git pull origin development
|
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **Create a new feature branch** for your changes:
|
3. **Start the Development Server**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git checkout -b your-feature-name
|
npm run start
|
||||||
```
|
```
|
||||||
|
|
||||||
3. **Make your changes and commit them**.
|
---
|
||||||
|
|
||||||
4. **Push your feature branch** to the remote repository:
|
## Contributing
|
||||||
```bash
|
|
||||||
git push origin your-feature-name
|
|
||||||
```
|
|
||||||
|
|
||||||
5. **Create a Pull Request** on GitHub from your feature branch to the `development` branch.
|
- **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.
|
||||||
|
|
||||||
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`.
|
---
|
||||||
|
|
||||||
## Project Structure
|
## Report an Error
|
||||||
|
|
||||||
Here is an overview of the key directories in the project:
|
To report an issue, please use the following link and provide the requested information:
|
||||||
|
|
||||||
- `src/app/(main)/page.tsx`
|
- **Issue Tracker**: [https://git.ourworld.tf/tfgrid_internal/circle_tfgrid_ops/issues](https://git.ourworld.tf/tfgrid_internal/circle_tfgrid_ops/issues)
|
||||||
This is the main entry point for the homepage.
|
|
||||||
|
|
||||||
- `src/components/`
|
When reporting an issue, please include:
|
||||||
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`
|
|
||||||
|
|
||||||
- `public/images/`
|
- **URL**: The page where the error occurred.
|
||||||
All static images are stored here. You can find logos, gallery images, and other visual assets in this folder.
|
- **Repo**: The repository you are working with.
|
||||||
|
- **Branch**: The specific branch you are on.
|
||||||
|
- **Problem**: A detailed description of the problem.
|
||||||
|
|
||||||
- `public/videos/`
|
---
|
||||||
This folder contains video assets used on the site.
|
|
||||||
|
|
||||||
## License
|
## Questions
|
||||||
|
|
||||||
This site template is a commercial product and is licensed under the [Tailwind Plus license](https://tailwindcss.com/plus/license).
|
If you have any questions, you can reach out to [sashaastiadi](https://git.ourworld.tf/sashaastiadi).
|
||||||
|
@@ -21,15 +21,12 @@ export default function Home() {
|
|||||||
<section id="home-hero">
|
<section id="home-hero">
|
||||||
<HomeHero />
|
<HomeHero />
|
||||||
</section>
|
</section>
|
||||||
<section id="technologies">
|
|
||||||
<StackSectionPreview />
|
|
||||||
</section>
|
|
||||||
<section id="bento-reviews">
|
|
||||||
<BentoReviews />
|
|
||||||
</section>
|
|
||||||
<section id="network">
|
<section id="network">
|
||||||
<WorldMap />
|
<WorldMap />
|
||||||
</section>
|
</section>
|
||||||
|
<section id="technologies">
|
||||||
|
<StackSectionPreview />
|
||||||
|
</section>
|
||||||
<section id="deploy">
|
<section id="deploy">
|
||||||
<Steps />
|
<Steps />
|
||||||
</section>
|
</section>
|
||||||
@@ -39,6 +36,9 @@ export default function Home() {
|
|||||||
<section id="clickable-gallery">
|
<section id="clickable-gallery">
|
||||||
<ClickableGallery />
|
<ClickableGallery />
|
||||||
</section>
|
</section>
|
||||||
|
<section id="bento-reviews">
|
||||||
|
<BentoReviews />
|
||||||
|
</section>
|
||||||
<section id="call-to-action">
|
<section id="call-to-action">
|
||||||
<CallToAction />
|
<CallToAction />
|
||||||
</section>
|
</section>
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
import { type Metadata } from 'next'
|
import { type Metadata } from 'next'
|
||||||
|
import Script from 'next/script'
|
||||||
import { Mulish } from 'next/font/google'
|
import { Mulish } from 'next/font/google'
|
||||||
import clsx from 'clsx'
|
import clsx from 'clsx'
|
||||||
|
|
||||||
@@ -26,6 +27,19 @@ export default function RootLayout({
|
|||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<html lang="en" className={clsx('antialiased', mulish.variable)}>
|
<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>
|
<body className="bg-black text-white">{children}</body>
|
||||||
</html>
|
</html>
|
||||||
)
|
)
|
||||||
|
@@ -92,7 +92,7 @@ export function BentoReviews() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<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 }}>
|
<FadeIn transition={{ duration: 0.8, delay: 0.1 }}>
|
||||||
<div className="mx-auto max-w-5xl ">
|
<div className="mx-auto max-w-5xl ">
|
||||||
<H2 className="text-center">Augmented Intelligence Fabric</H2>
|
<H2 className="text-center">Augmented Intelligence Fabric</H2>
|
||||||
|
@@ -1,3 +1,5 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
import { H2, P } from '@/components/Texts'
|
import { H2, P } from '@/components/Texts'
|
||||||
|
|
||||||
export function CallTo() {
|
export function CallTo() {
|
||||||
@@ -20,7 +22,15 @@ export function CallTo() {
|
|||||||
>
|
>
|
||||||
Book a Meeting
|
Book a Meeting
|
||||||
</a>
|
</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="javascript:;"
|
||||||
|
onClick={() => {
|
||||||
|
if (typeof window !== 'undefined' && (window as any).ml_account) {
|
||||||
|
(window as any).ml_account('webforms', '6108375', 'l9m8g1', 'show')
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
className="text-sm/6 font-semibold text-[#2F3178] hover:text-[#2F3178]/80"
|
||||||
|
>
|
||||||
Join the Waitlist <span aria-hidden="true">→</span>
|
Join the Waitlist <span aria-hidden="true">→</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,3 +1,5 @@
|
|||||||
|
'use client'
|
||||||
|
|
||||||
import { CircleBackground } from '@/components/CircleBackground'
|
import { CircleBackground } from '@/components/CircleBackground'
|
||||||
import { Container } from '@/components/Container'
|
import { Container } from '@/components/Container'
|
||||||
import { Button } from '@/components/Button'
|
import { Button } from '@/components/Button'
|
||||||
@@ -42,7 +44,15 @@ export function CallToAction() {
|
|||||||
>
|
>
|
||||||
Book a Meeting
|
Book a Meeting
|
||||||
</Button>
|
</Button>
|
||||||
<Button href="mailto:info@ourworld.tf" target="_blank" rel="noopener noreferrer" variant="outline" color="white">
|
<Button
|
||||||
|
variant="outline"
|
||||||
|
color="white"
|
||||||
|
onClick={() => {
|
||||||
|
if (typeof window !== 'undefined' && (window as any).ml_account) {
|
||||||
|
(window as any).ml_account('webforms', '6108375', 'l9m8g1', 'show')
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>
|
||||||
Join the Waitlist
|
Join the Waitlist
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -40,7 +40,7 @@ const row2 = logos.slice(6);
|
|||||||
|
|
||||||
export function Companies() {
|
export function Companies() {
|
||||||
return (
|
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">
|
<div className="relative z-10 mx-auto w-full max-w-6xl p-4">
|
||||||
|
|
||||||
{/* Heading */}
|
{/* Heading */}
|
||||||
|
@@ -110,7 +110,15 @@ export function Header() {
|
|||||||
<NavLinks className="block text-base/7 tracking-tight" />
|
<NavLinks className="block text-base/7 tracking-tight" />
|
||||||
</div>
|
</div>
|
||||||
<div className="mt-8 flex flex-col gap-4">
|
<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"
|
||||||
|
onClick={() => {
|
||||||
|
if (typeof window !== 'undefined' && (window as any).ml_account) {
|
||||||
|
(window as any).ml_account('webforms', '6108375', 'l9m8g1', 'show')
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>
|
||||||
Join the Waitlist
|
Join the Waitlist
|
||||||
</Button>
|
</Button>
|
||||||
<Button href="https://calendly.com/sachao/30min" color="cyan">Book a Meeting</Button>
|
<Button href="https://calendly.com/sachao/30min" color="cyan">Book a Meeting</Button>
|
||||||
@@ -123,8 +131,16 @@ export function Header() {
|
|||||||
)}
|
)}
|
||||||
</Popover>
|
</Popover>
|
||||||
<div className="flex items-center gap-6 max-lg:hidden">
|
<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
|
||||||
Join the Waitlist
|
variant="outline"
|
||||||
|
color="white"
|
||||||
|
onClick={() => {
|
||||||
|
if (typeof window !== 'undefined' && (window as any).ml_account) {
|
||||||
|
(window as any).ml_account('webforms', '6108375', 'l9m8g1', 'show')
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Join the Waitlist
|
||||||
</Button>
|
</Button>
|
||||||
<Button href="https://calendly.com/sachao/30min" color="cyan">Book a Meeting</Button>
|
<Button href="https://calendly.com/sachao/30min" color="cyan">Book a Meeting</Button>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -30,7 +30,7 @@ export function Steps() {
|
|||||||
const isInView = useInView(ref, { once: true });
|
const isInView = useInView(ref, { once: true });
|
||||||
|
|
||||||
return (
|
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">
|
<div className="relative px-6 lg:px-12">
|
||||||
<motion.div
|
<motion.div
|
||||||
initial={{ opacity: 0, y: 20 }}
|
initial={{ opacity: 0, y: 20 }}
|
||||||
|
Reference in New Issue
Block a user