diff --git a/package.json b/package.json index 7c75ec254..99291e474 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bldrs", - "version": "1.0.1894", + "version": "1.0.1898", "main": "src/index.jsx", "license": "AGPL-3.0", "homepage": "https://github.com/bldrs-ai/Share", diff --git a/src/BaseRoutes.jsx b/src/BaseRoutes.jsx index 708f2571c..e6f2f108f 100644 --- a/src/BaseRoutes.jsx +++ b/src/BaseRoutes.jsx @@ -9,7 +9,9 @@ import PopupCallback from './Components/Auth/PopupCallback' import {checkOPFSAvailability, setUpGlobalDebugFunctions} from './OPFS/utils' import ShareRoutes from './ShareRoutes' import Styles from './Styles' -import About from './pages/About' +import MarketingAbout from './pages/marketing/MarketingAbout' +import MarketingPricing from './pages/marketing/MarketingPricing' +import MarketingServices from './pages/marketing/MarketingServices' import Ipsum from './pages/Ipsum' import Privacy from './pages/Privacy' import TOS from './pages/TOS' @@ -185,7 +187,9 @@ export default function BaseRoutes({testElt = null}) { ) } /> - }/> + }/> + }/> + }/> }/> }/> }/> diff --git a/src/Components/About/AboutControl.jsx b/src/Components/About/AboutControl.jsx index 8c834145a..6202e7085 100644 --- a/src/Components/About/AboutControl.jsx +++ b/src/Components/About/AboutControl.jsx @@ -1,17 +1,18 @@ import React, {ReactElement, useEffect, useState} from 'react' import {isFirst, setVisited} from '../../privacy/firstTime' import useStore from '../../store/useStore' -import {ControlButtonWithHashState} from '../Buttons' +import {TooltipIconButton} from '../Buttons' import {LogoB} from '../Logo/Logo' import AboutDialog from './AboutDialog' import OnboardingOverlay from '../Onboarding/OnboardingOverlay' -import {HASH_PREFIX_ABOUT} from './hashState' import PkgJson from '../../../package.json' /** - * Button to toggle About panel on and off. Default state is open until - * firstTime cookie is set, then closed. + * Button to toggle About panel on and off. + * + * - First-time visitors: shows the AboutDialog splash screen + * - Returning visitors: navigates to the /about marketing page * * @return {ReactElement} */ @@ -62,23 +63,34 @@ export default function AboutControl() { setIsOnboardingOverlayVisible(false) } + // Logo click: first-time visitors see splash dialog, returning users go to marketing page + // Opens in a new tab to preserve the user's model state and viewer context + const handleLogoClick = () => { + if (isFirst()) { + setIsAboutVisible(true) + } else { + window.open('/about', '_blank') + } + } + return ( <> - } - isDialogDisplayed={isAboutVisible} - setIsDialogDisplayed={setIsAboutVisible} - hashPrefix={HASH_PREFIX_ABOUT} + onClick={handleLogoClick} placement='right' + selected={isAboutVisible} + variant='control' + color='success' + size='small' dataTestId={testId} - > - - + /> + {onboardingOverlaySource === 'about' && ( , + title: 'Modern Collaboration Platform', + description: 'Current CAD tooling is stuck in the dark ages. Google Docs, GitHub, and Figma have shown what users want. We\'re bringing that same level of collaboration to Digital Twins.', + }, + { + icon: , + title: 'AI-Powered Interface', + description: 'AI Coding and Assistants replace thousands of buttons with a flexible, task-oriented natural language interface. Build anything with a prompt.', + }, + { + icon: , + title: 'Built for the Future', + description: 'Frontier models will soon use sophisticated computational engineering tools and physics models to create truly advanced technologies.', + }, +] + +const SHARE_FEATURES = [ + 'Web-based model view and collaboration', + 'Fastest IFC & STEP engine', + 'Versioning & Issues with GitHub', + 'Complete in-browser data sovereignty', + 'Frictionless onboarding with no signup required', +] + +const AI_FEATURES = [ + 'Full IFC & STEP APIs', + 'AI Assistant for CAD with natural language interface', + 'AI-powered app creation for specialized tasks', +] + +const PERFORMANCE_STATS = [ + {value: '32s', label: 'Load 860MB IFC file', detail: 'In-browser, no upload required'}, + {value: '8s', label: 'Load 110MB STEP file', detail: 'Progressive web app'}, +] + + +/** + * Marketing About/Landing page. + * + * @return {ReactElement} + */ +export default function MarketingAbout() { + return ( + + + About Bldrs.ai - AI-Powered Digital Twin Collaboration Platform + + + + + + + + + + + + + + {/* Hero Section */} + + + + Smarter Building Together + + + Tomorrow's innovations won't start with a drawing.{' '} + + They will start with a prompt. + + + + Bldrs.ai is the world's fastest browser-based CAD viewer and collaboration platform, + powered by AI. We're building the future where Digital Twins and artificial intelligence + transform how imagination becomes reality. + + + Think AI + GitHub for CAD. We enable teams to collaborate on Digital Twin engineering + data with unprecedented speed, open standards, and intelligent assistance. + + + + + + + + + {/* Our Solution - 3 Cards */} + + + + + Our Solution + + + + {SOLUTION_CARDS.map((card, i) => ( + + + + {card.icon} + + {card.title} + + + {card.description} + + + + + ))} + + + + + {/* Key Features: Bldrs Share + AI Foundations */} + + + + + + Bldrs Share + + + Key Features + + + {SHARE_FEATURES.map((feature, i) => ( + + + + {feature} + + + ))} + + + + + AI Foundations + + + Intelligent Tools + + + {AI_FEATURES.map((feature, i) => ( + + + + {feature} + + + ))} + + + + + + + {/* Industry-Leading Performance */} + + + + + Industry-Leading Performance + + + Fast is our Favorite Feature + + + {PERFORMANCE_STATS.map((stat, i) => ( + + + + + {stat.value} + + + {stat.label} + + + {stat.detail} + + + + + ))} + + + Compared to competitors taking 173-990 seconds for similar files + + + + + {/* CTA Section */} + + + + Ready to Transform Your Workflow? + + + Let's discuss how Bldrs.ai can accelerate your Digital Twin initiatives + and unlock new capabilities for your team. + + + + + + + + + {/* Join the Revolution */} + + + + Join the Revolution + + + We're building the future of Digital Twin collaboration with Industry 4.0 technology, + powering the next generation of engineering and smart manufacturing. + + + + + + + + + + ) +} diff --git a/src/pages/marketing/MarketingLayout.jsx b/src/pages/marketing/MarketingLayout.jsx new file mode 100644 index 000000000..4d553eaf7 --- /dev/null +++ b/src/pages/marketing/MarketingLayout.jsx @@ -0,0 +1,208 @@ +import React, {ReactElement, useEffect} from 'react' +import {Link as RouterLink, useLocation} from 'react-router-dom' +import { + Box, + Button, + Container, + Link, + Stack, + Typography, + useTheme, +} from '@mui/material' +import {Rocket as RocketIcon} from '@mui/icons-material' +import {LogoB} from '../../Components/Logo/Logo' + + +const NAV_ITEMS = [ + {label: 'About', path: '/about'}, + {label: 'Pricing', path: '/pricing'}, + {label: 'Services', path: '/services'}, +] + + +/** + * Shared layout for marketing pages with navigation bar and footer. + * + * @property {ReactElement} children Page content + * @return {ReactElement} + */ +export default function MarketingLayout({children}) { + const location = useLocation() + const theme = useTheme() + const isDark = theme.palette.mode === 'dark' + + // Marketing pages need scrolling, override the global overflow:hidden on body + useEffect(() => { + document.body.style.overflow = 'auto' + document.body.style.position = 'static' + document.body.style.height = 'auto' + return () => { + document.body.style.overflow = '' + document.body.style.position = '' + document.body.style.height = '' + } + }, []) + + return ( + + {/* Navigation Bar */} + + + + + bldrs.ai + + + + + {NAV_ITEMS.map((item) => ( + + ))} + + + + + {/* Page Content */} + + {children} + + + {/* Footer */} + + + + + + + bldrs.ai + + + + + {NAV_ITEMS.map((item) => ( + + {item.label} + + ))} + + Terms + + + Privacy + + + + + + Discord + + + GitHub + + + Contact + + + + + + © {new Date().getFullYear()} Bldrs, Inc. All rights reserved. + + + + + ) +} diff --git a/src/pages/marketing/MarketingPricing.jsx b/src/pages/marketing/MarketingPricing.jsx new file mode 100644 index 000000000..69a5070d6 --- /dev/null +++ b/src/pages/marketing/MarketingPricing.jsx @@ -0,0 +1,492 @@ +import React, {ReactElement, useState} from 'react' +import {Helmet} from 'react-helmet-async' +import { + Accordion, + AccordionDetails, + AccordionSummary, + Box, + Button, + Card, + CardContent, + Chip, + Container, + Divider, + Grid, + Stack, + Switch, + Typography, +} from '@mui/material' +import { + Check as CheckIcon, + ExpandMore as ExpandMoreIcon, + Rocket as RocketIcon, + Star as StarIcon, +} from '@mui/icons-material' +import MarketingLayout from './MarketingLayout' + + +const PLANS = [ + { + name: 'Bldrs Share', + monthlyPrice: 0, + yearlyPrice: 0, + description: 'Fastest, browser-first IFC and STEP viewing', + sections: [ + { + heading: 'No Login Required:', + features: [ + 'Fastest free IFC and STEP viewing', + 'Drag and drop', + 'No data transfer', + '10 model loads per month', + ], + }, + { + heading: 'With Login:', + features: [ + '25 model loads per month', + 'Bldrs public GitHub repositories', + 'Basic Bldrs Tools', + 'Bldrs Assistant', + '1M tokens', + ], + }, + ], + cta: 'Get Started', + ctaLink: '/share', + ctaVariant: 'outlined', + highlight: false, + }, + { + name: 'Share Pro', + monthlyPrice: 25, + yearlyPrice: 270, + description: 'IFC and STEP sharing and collaboration for individual professionals', + sections: [ + { + heading: null, + features: [ + 'All Share capabilities plus:', + 'Private GitHub and Google Drive repositories', + 'Private collaboration', + 'Configurable landing model', + 'Advanced Bldrs Tools', + 'Bldrs Assistant', + 'Bldrs Apps Creator', + '10M tokens', + ], + }, + ], + cta: 'Start Pro', + ctaLink: '/share', + ctaVariant: 'contained', + highlight: true, + badge: 'Popular', + }, + { + name: 'Share Teams', + monthlyPrice: 30, + yearlyPrice: 324, + perMember: true, + description: 'IFC and STEP sharing and collaboration for individual professionals and teams', + sections: [ + { + heading: null, + features: [ + 'All Share capabilities plus:', + 'Centralized billing', + 'Team-level access management', + 'Team Apps Library with admin controls', + 'Shared token pools', + 'Unified billing', + 'Configurable landing model', + 'Advanced Bldrs Tools', + 'Apps library extensions', + '50M tokens', + ], + }, + ], + cta: 'Contact Bldrs', + ctaLink: 'mailto:hello@bldrs.ai', + ctaVariant: 'outlined', + highlight: false, + }, +] + +const ENTERPRISE_FEATURES_COL1 = [ + 'Cloud storage integration', + 'On premise or cloud deployment options', + 'Advanced enterprise security', + 'SSO integration', + 'Configurable issue management and workflow', + 'Enterprise branding', +] + +const ENTERPRISE_FEATURES_COL2 = [ + 'Enterprise tools integration', + 'Custom apps', + 'DfM workflows integration', + 'Configurable landing model', + 'Advanced Bldrs Tools', + 'API access', + 'Enterprise support', +] + +const FAQS = [ + { + q: 'What are tokens?', + a: 'AI tokens are units that measure AI usage in Bldrs.ai. Token usage is mainly related to syncing your project\'s file system to the AI and processing model data. Larger projects and more complex models use more tokens per operation. We continuously optimize to reduce token consumption while maintaining performance.', + }, + { + q: 'How do Teams plans work?', + a: 'Teams provide a shared workspace for users to collaborate on Bldrs.ai projects. The subscription cost is per team member. Each paid team member receives a monthly token allotment based on the subscription tier. Tokens are not shared among team members, ensuring predictable costs and usage.', + }, + { + q: 'Do tokens rollover from month to month?', + a: 'Yes! Tokens from a paid subscription roll over for one additional month, making them valid for up to two months in total. An active paid subscription is required to access rolled over tokens. This ensures you never lose unused tokens and can handle variable workloads efficiently.', + }, + { + q: 'Can I change my plan later?', + a: 'Yes, you can upgrade or downgrade your plan at any time. Changes take effect at the start of your next billing cycle. You can manage your subscription through your account settings or our billing portal.', + }, + { + q: 'Can I cancel my subscription?', + a: 'Yes, you can cancel your subscription at any time with no penalties. Your access will continue until the end of your current billing period. After cancellation, you\'ll automatically revert to the Free plan.', + }, + { + q: 'What file formats do you support?', + a: 'Bldrs.ai supports industry-standard formats including IFC, STEP, STL, OBJ, and GLTF. We provide the fastest browser-based rendering for IFC and STEP files, with load times significantly faster than competitors.', + }, +] + + +/** + * Marketing Pricing page with plan tiers and FAQ. + * + * @return {ReactElement} + */ +export default function MarketingPricing() { + const [isYearly, setIsYearly] = useState(false) + + return ( + + + Pricing - Bldrs.ai Digital Twin Collaboration Plans + + + + + + + + + + + + + {/* Header */} + + + + Start for free.{' '} + Upgrade as you go. + + + Choose the plan that fits your needs + + + {/* Monthly/Yearly Toggle */} + + + Monthly + + setIsYearly(!isYearly)} + sx={{ + '& .MuiSwitch-switchBase.Mui-checked': {color: 'lime'}, + '& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track': {bgcolor: 'lime'}, + }} + /> + + Yearly + + {isYearly && ( + + )} + + + + + {/* Pricing Cards */} + + + {PLANS.map((plan, i) => { + return ( + + + {plan.badge && ( + } + label={plan.badge} + sx={{ + position: 'absolute', + top: -12, + left: '50%', + transform: 'translateX(-50%)', + bgcolor: 'lime', + color: '#000', + fontWeight: 700, + }} + /> + )} + + + {plan.name} + + + {plan.description} + + + + + + ${isYearly ? Math.round(plan.yearlyPrice / 12) : plan.monthlyPrice} + + + /{plan.perMember ? 'member/month' : 'month'} + + + {isYearly && plan.yearlyPrice > 0 && ( + + ${plan.yearlyPrice}{plan.perMember ? '/member' : ''}/year billed annually + + )} + + + {plan.sections.map((section, si) => ( + + {section.heading && ( + + {section.heading} + + )} + + {section.features.map((feature, fi) => ( + + + + {feature} + + + ))} + + + ))} + + + + + + + + ) + })} + + + + {/* Enterprise Card */} + + + + + + Share Enterprise + + + IFC and STEP sharing and collaboration with DfM workflows for the enterprise. + + + + + + {ENTERPRISE_FEATURES_COL1.map((feature, i) => ( + + + {feature} + + ))} + + + + + {ENTERPRISE_FEATURES_COL2.map((feature, i) => ( + + + {feature} + + ))} + + + + + + + + + + + + {/* FAQ Section */} + + + + + FAQ + + + Frequently Asked Questions + + + {FAQS.map((faq, i) => ( + + }> + + {faq.q} + + + + + {faq.a} + + + + ))} + + + + {/* Bottom CTA */} + + + + Ready to get started? + + + Join thousands of professionals using Bldrs.ai to revolutionize their workflow + + + + + + + + + ) +} diff --git a/src/pages/marketing/MarketingServices.jsx b/src/pages/marketing/MarketingServices.jsx new file mode 100644 index 000000000..18e6fbaa5 --- /dev/null +++ b/src/pages/marketing/MarketingServices.jsx @@ -0,0 +1,510 @@ +import React, {ReactElement} from 'react' +import {Helmet} from 'react-helmet-async' +import { + Box, + Button, + Card, + CardContent, + Container, + Grid, + Stack, + Typography, +} from '@mui/material' +import { + Build as BuildIcon, + Check as CheckIcon, + Code as CodeIcon, + EmojiObjects as EmojiObjectsIcon, + Engineering as EngineeringIcon, + Factory as FactoryIcon, + FlightTakeoff as FlightIcon, + Groups as GroupsIcon, + Rocket as RocketIcon, + Search as SearchIcon, + Speed as SpeedIcon, + WbSunny as SunIcon, +} from '@mui/icons-material' +import MarketingLayout from './MarketingLayout' + + +const CORE_SERVICES = [ + { + icon: , + title: 'Digital Twin Integration', + description: 'Seamlessly integrate Bldrs.ai into your existing workflows and toolchains', + features: [ + 'Custom API integrations with your CAD and PLM systems', + 'IFC and STEP data pipeline automation', + 'GitHub workflow setup and optimization', + 'CI/CD integration for automated model validation', + 'Cloud infrastructure setup and optimization', + ], + }, + { + icon: , + title: 'AI-Powered Customization', + description: 'Extend Bldrs.ai with custom AI assistants and specialized tools for your industry', + features: [ + 'Custom AI assistant training for your domain', + 'Specialized validation rules and compliance checking', + 'Industry-specific model analysis tools', + 'Automated reporting and documentation generation', + 'Custom plugins and extensions development', + ], + }, + { + icon: , + title: 'Digital Transformation Consulting', + description: 'Strategic guidance for Industry 4.0, AI integration, and modern manufacturing', + features: [ + 'Digital Twin strategy and implementation roadmaps', + 'AI strategy and intelligent automation solutions', + 'Industry 4.0 transformation planning', + 'Design for Manufacturing (DFM) optimization', + 'Open standards adoption and workflow modernization', + ], + }, + { + icon: , + title: 'Enterprise Support & Training', + description: 'Dedicated support to ensure your team maximizes Bldrs.ai capabilities', + features: [ + 'Hands-on training sessions for your teams', + '24/7 dedicated technical support', + 'Regular office hours with Bldrs.ai experts', + 'Custom documentation and best practices', + 'Ongoing optimization and performance tuning', + ], + }, +] + +const INDUSTRIES = [ + { + icon: , + title: 'New Manufacturing', + description: 'Edge manufacturing, 3D printing, and advanced production labs', + applications: [ + 'Digital Twin-based production planning', + 'Real-time model collaboration across facilities', + 'AI-powered design optimization', + 'Supply chain visualization', + ], + }, + { + icon: , + title: 'New Energy', + description: 'Solar, battery systems, and e-mobility infrastructure', + applications: [ + 'Facility and infrastructure modeling', + 'Performance simulation and analysis', + 'Compliance validation and reporting', + 'Multi-site project coordination', + ], + }, + { + icon: , + title: 'AEC & Construction', + description: 'Commercial buildings, pre-fab, and datacenter infrastructure', + applications: [ + 'BIM coordination and clash detection', + 'Automated code compliance checking', + 'As-built documentation and verification', + 'Stakeholder collaboration and review', + ], + }, + { + icon: , + title: 'Aerospace & Defense', + description: 'Complex assemblies requiring precision and traceability', + applications: [ + 'STEP file management and versioning', + 'Configuration management', + 'Supplier collaboration platforms', + 'Design review and approval workflows', + ], + }, +] + +const CASE_STUDIES = [ + { + title: 'Manufacturing Scale-Up', + client: 'Leading 3D Printing Lab', + challenge: 'Needed to coordinate complex CAD models across multiple facilities and partners', + solution: 'Implemented Bldrs.ai with custom GitHub workflows and automated validation', + results: [ + '70% reduction in model coordination time', + 'Real-time collaboration across 5 global sites', + 'Eliminated file versioning conflicts', + ], + }, + { + title: 'Solar Farm Development', + client: 'Renewable Energy Developer', + challenge: 'Managing design iterations across 20+ simultaneous projects', + solution: 'Custom AI assistant for automated compliance checking and design optimization', + results: [ + '50% faster project delivery', + 'Automated regulatory compliance validation', + 'Reduced design errors by 85%', + ], + }, +] + +const APPROACH_STEPS = [ + {num: '01', title: 'Discover', description: 'Understand your workflows, challenges, and goals'}, + {num: '02', title: 'Design', description: 'Create a tailored solution architecture'}, + {num: '03', title: 'Deliver', description: 'Implement, test, and deploy your solution'}, + {num: '04', title: 'Support', description: 'Ongoing optimization and support'}, +] + +const WHY_US_STATS = [ + {value: '15+', label: 'Years Combined CAD Experience'}, + {value: '150K+', label: 'Platform Users Worldwide'}, + {value: '5x', label: 'Faster Than Competitors'}, +] + + +/** + * Marketing Services page. + * + * @return {ReactElement} + */ +export default function MarketingServices() { + return ( + + + Bldrs Services - Digital Twin Integration & Consulting + + + + + + + + + + + + + {/* Header */} + + + + Bldrs{' '}Services + + + Expert consulting and integration services to accelerate your Digital Twin journey + + + Our team of CAD, AI, and Digital Twin experts helps you unlock the full potential + of Bldrs.ai. From integration to custom development, we ensure your success every + step of the way. + + + + + {/* Core Services */} + + + + {CORE_SERVICES.map((service, i) => ( + + + + {service.icon} + + {service.title} + + + {service.description} + + + {service.features.map((feature, fi) => ( + + + + {feature} + + + ))} + + + + + ))} + + + + + {/* Industry Expertise */} + + + + + Industry Expertise + + + Built for Your Industry + + + + {INDUSTRIES.map((industry, i) => ( + + + + + {industry.icon} + + + {industry.title} + + + {industry.description} + + + + + Key Applications + + + {industry.applications.map((app, ai) => ( + + + + {app} + + + ))} + + + + + ))} + + + + + {/* Case Studies */} + + + + + Success Stories + + + Real Results from Real Teams + + + + {CASE_STUDIES.map((study, i) => ( + + + + + {study.title} + + + Client: {study.client} + + + + Challenge + + + {study.challenge} + + + + Solution + + + {study.solution} + + + + Results + + + {study.results.map((result, ri) => ( + + + + {result} + + + ))} + + + + + ))} + + + + + {/* Our Approach */} + + + + + Our Approach + + + From Discovery to Delivery + + + + {APPROACH_STEPS.map((step, i) => ( + + + + {step.num} + + + {step.title} + + + {step.description} + + + + ))} + + + + + {/* Why Work With Us */} + + + + {WHY_US_STATS.map((stat, i) => ( + + + + {stat.value} + + + {stat.label} + + + + ))} + + + + + {/* CTA */} + + + + Ready to Transform Your Workflow? + + + Let's discuss how Bldrs Services can accelerate your Digital Twin initiatives + and unlock new capabilities for your team. + + + + + + + Or email us at services@bldrs.ai + + + + + ) +}