/* * SonarQube * Copyright (C) 2009-2019 SonarSource SA * mailto:info AT sonarsource DOT com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import * as React from 'react'; import Helmet from 'react-helmet'; import { FixedNavBar, TopNavBar } from './components/NavBars'; import FeaturedProjects from './components/FeaturedProjects'; import Footer from './components/Footer'; import { Languages } from './components/Languages'; import LoginButtons from './components/LoginButtons'; import Statistics from './components/Statistics'; import { requestHomepageData, HomepageData, FeaturedProject } from './utils'; import { addWhitePageClass, removeWhitePageClass } from '../../../helpers/pages'; import { getBaseUrl } from '../../../helpers/urls'; import './new_style.css'; interface State { data?: HomepageData; } export default class Home extends React.PureComponent<{}, State> { state: State = {}; componentDidMount() { addWhitePageClass(); this.fetchData(); } componentWillUnmount() { removeWhitePageClass(); } fetchData = () => { requestHomepageData() .then(data => this.setState({ data })) .catch(() => { /* Fail silently */ }); }; render() { const { data } = this.state; return (
); } } function PageBackgroundHeader() { return (
); } function PageTitle() { return (

Clean Code

Rockstar Status

Eliminate bugs and vulnerabilities.
Champion quality code in your projects.
Go ahead! Analyze your repo:

Free for Open-Source Projects

); } function EnhanceWorkflow() { return (

Enhance Your Workflow
with Continuous Code Quality

Maximize your throughput and only release clean code
SonarCloud automatically analyzes branches and decorates pull requests
); } function Functionality() { return (

Functionality
that Fits Your Projects

Easy to Use

With just a few clicks you’re up and running right where your code lives. Immediate access to the latest features and enhancements.

{' '} Scale on-demand as your projects grow. {' '} No contracts, stop/start anytime.
Open and Transparent

Project dashboards keep teams and stakeholders informed on code quality and releasability.

Display project badges and show your communities you’re all about awesome.

Effective Collaboration

Use SonarCloud with your team, share best practices and have fun writing quality code!


Connect with SonarCloud and get real-time notifications in your IDE as you work.

); } interface StatsProps { data?: HomepageData; } function Stats({ data }: StatsProps) { return (

Over 3,000 Projects
Continuously Analyzed

{data && ( )}
); } interface ProjectsProps { featuredProjects: FeaturedProject[]; } function Projects({ featuredProjects }: ProjectsProps) { return (
{featuredProjects.length > 0 && ( <>
Transparency makes sense
and that’s why the trend is growing.

Check out these open-source projects showing users
their commitment to quality.

)}
Come join the fun, it’s entirely free for open-source projects!
); }