diff --git a/src/community.md b/src/community.md
index 401270f..10f5cf7 100644
--- a/src/community.md
+++ b/src/community.md
@@ -46,20 +46,22 @@
 Overflow.
 
 
-### Books and Publications
+### Books and publications
 
 * [Cassandra: The Definitive Guide, 3rd Edition](http://shop.oreilly.com/product/0636920299837.do), by Jeff Carpenter and Eben Hewitt. Updated for Cassandra 4.0
 * [Mastering Apache Cassandra, 2nd Edition](https://www.amazon.com/Mastering-Apache-Cassandra-Nishant-Neeraj/dp/1784392618/), by Nishant Neeraj
 * [Learning Apache Cassandra - Manage Fault Tolerant and Scalable Real-Time Data](https://www.amazon.com/Learning-Apache-Cassandra-Tolerant-Real-Time/dp/1783989203/), by Mat Brown
 * [Cassandra: a decentralized structured storage system](https://dl.acm.org/citation.cfm?id=1773922), by Avinash Lakshman and Prashant Malik
 
+### Third-party projects
+
+There are a number of third-party Cassandra projects that could be useful. Check out this [listing](https://cassandra.apache.org/third-party/).
 
 ### Reporting bugs
 
 If you encounter a problem with Cassandra, the first places to ask for help are the [user mailing list](#mailing)
-and the `#cassandra` [IRC channel](#irc).
+and the `#cassandra` [Slack channel](https://s.apache.org/slack-invite).
 
 If, after having asked for help, you suspect that you have found a bug in Cassandra, you should report it by opening a
-ticket through the [Apache Cassandra JIRA](https://issues.apache.org/jira/browse/CASSANDRA). Please provide as much
-details as you can on your problem, and don't forget to indicate which version of Cassandra you are running and on which
-environment.
+ticket through the [Apache Cassandra JIRA tracking system](https://issues.apache.org/jira/browse/CASSANDRA). Please provide as much
+detail as you can on your problem. Don't forget to indicate which version of Cassandra you are running and on which environment.
diff --git a/src/index.html b/src/index.html
index 0bc44ae..74e14f8 100644
--- a/src/index.html
+++ b/src/index.html
@@ -22,20 +22,20 @@
         <h4>Proven</h4>
         <p>
         Cassandra is in use at
+        <a href="https://www.dataversity.net/case-study-cassandra-meets-call-of-duty/">Activision</a>,
         <a href="http://www.slideshare.net/daveconnors/cassandra-puppet-scaling-data-at-15-per-month">Constant Contact</a>,
-        <a href="http://planetcassandra.org/blog/post/cassandra-at-cern-large-hadron-collider/">CERN</a>,
+
         <a href="http://www.slideshare.net/planetcassandra/nyc-tech-day-using-cassandra-for-dvr-scheduling-at-comcast">Comcast</a>,
         <a href="http://www.slideshare.net/jaykumarpatel/cassandra-at-ebay-13920376">eBay</a>,
-        <a href="http://planetcassandra.org/blog/post/analytics-at-github-with-apache-cassandra/">GitHub</a>,
-        <a href="http://planetcassandra.org/blog/post/godaddy-worlds-largest-domain-name-registrar-and-web-host-provider-utilizes-cassandra-for-replication-and-scalability/">GoDaddy</a>,
-        <a href="http://planetcassandra.org/blog/post/cassandra-used-to-build-scalable-and-highly-available-systems-at-hulu-streaming-content-to-over-5-million-subscribers/">Hulu</a>,
-        <a href="http://planetcassandra.org/blog/post/instagram-making-the-switch-to-cassandra-from-redis-75-instasavings/">Instagram</a>, 
-        <a href="http://www.slideshare.net/planetcassandra/3-mohit-anchlia">Intuit</a>,
-        <a href="http://www.slideshare.net/adrianco/migrating-netflix-from-oracle-to-global-cassandra">Netflix</a>,
-        <a href="http://planetcassandra.org/blog/post/reddit-upvotes-apache-cassandras-horizontal-scaling-managing-17000000-votes-daily/">Reddit</a>, 
-        <a href="http://planetcassandra.org/blog/post/make-it-rain-apache-cassandra-at-the-weather-channel-for-severe-weather-alerts/">The Weather Channel</a>,
-        and <a href="http://planetcassandra.org/companies/">over 1500 more companies</a> that have large, active data
-        sets.</p>
+
+
+	<a href="https://www.datastax.com/blog/2020/04/accelerate-rewind-how-instagram-uses-cassandra-operate-global-scale-2">Instagram</a>,
+
+	<a href="https://www.datastax.com/resources/video/datastax-accelerate-2019-managing-400-billion-requests-zero-downtime-turbotax">Intuit</a>, 
+
+	<a href="https://www.slideshare.net/VinayKumarChella/how-netflix-manages-petabyte-scale-apache-cassandra-in-the-cloud">Netflix</a>, 
+
+        and  thousands of other companies that have large, active data sets.</p>
       </div>
 
       <div class="col-md-2 col-sm-2 feature-item">
diff --git a/src/third-party.md b/src/third-party.md
new file mode 100644
index 0000000..8354379
--- /dev/null
+++ b/src/third-party.md
@@ -0,0 +1,79 @@
+---
+layout: page
+permalink: /third-party/
+title: Third-party projects 
+is_homepage: false
+is_sphinx_doc: false
+---
+
+ Third-party projects
+---------
+
+### Cassandra as-a-Service cloud offerings
+
+* [Aiven for Apache Cassandra](https://aiven.io/cassandra): Aiven for Apache Cassandra is a fully managed NoSQL database, deployable in the cloud of your choice.
+Snap it into your existing workflows with the click of a button, automate away the mundane tasks, and focus on building your core apps. Now running Cassandra 3.11.
+* [Amazon Keyspaces (for Apache Cassandra)](https://aws.amazon.com/keyspaces/): Scalable, highly available, and managed Apache Cassandra–compatible database service.
+* [DataStax Astra](https://astra.datastax.com): Cloud-native database as-a-service built on Apache Cassandra™ complete with a free-tier and CQL, REST and GraphQL APIs for faster development. Deployable in AWS and GCP.
+* [Instaclustr Hosted & Managed Apache Cassandra as a Service](https://www.instaclustr.com/solutions/managed-apache-cassandra): Instaclustr provides a fully managed and SOC 2 certified hosted & managed service for Apache Cassandra® on AWS, Azure, GCP and IBM Cloud.
+
+### Cassandra installation tools
+* [Docker community Cassandra images](https://hub.docker.com/_/cassandra): Docker images for Apache Cassandra maintained by the Docker community
+* [DataStax Desktop](https://downloads.datastax.com/#desktop): Cross-platform (Windows, MacOSX, Linux) application that allows developers to quickly explore Apache Cassandra™ with a few clicks on their laptop, complete with tutorials and walkthroughs.
+* [The Last Pickle tlp-cluster](https://github.com/thelastpickle/tlp-cluster): tlp-cluster, a tool for launching Cassandra clusters in AWS (DataStax)
+
+### Cassandra tools
+
+ * [cassandra.link](https://cassandra.link): Curated site with tools, along with [cassandra.tools](https://cassandra.tools).
+* [Cassandra Prometheus Exporter](https://github.com/criteo/cassandra_exporter): Standalone application which exports Cassandra metrics through a prometheus friendly endpoint
+* [DataStax Bulk Loader](https://downloads.datastax.com/#bulk-loader): Easy-to-use command line utility for loading and unloading JSON or CSV files to/from the database, counting rows in tables and identifying large partitions. 
+* [DataStax Metrics Collector for Cassandra](https://github.com/datastax/metric-collector-for-apache-cassandra): Based on Collectd, aggregates OS and Cassandra metrics along with diagnostic events to facilitate problem resolution and remediation
+* [Hackolade](https://hackolade.com/nosqldb.html#cassandra): Visual data modeling tool for Cassandra
+* [The Last Pickle Medusa](https://github.com/thelastpickle/cassandra-medusa): Apache Cassandra Backup and Restore Tool (DataStax)
+* [The Last Pickle Reaper](https://github.com/thelastpickle/cassandra-reaper): Automated repair tool for Apache Cassandra  (DataStax)
+* [The Last Pickle Cassandra stress tool, tlp-stress](https://github.com/thelastpickle/tlp-stress): A workload-centric stress tool for Apache Cassandra. Designed for simplicity, no math degree required. (DataStax)
+* [NoSQLBench](https://github.com/nosqlbench/nosqlbench): Pluggable benchmarking suite for Cassandra and other distributed systems
+
+### Cassandra Kubernetes operators
+
+* [DataStax cass-operator](https://github.com/datastax/cass-operator): The DataStax Kubernetes Operator for Apache Cassandra
+* [D2iQ Cassandra Kudo Operator](https://github.com/mesosphere/kudo-cassandra-operator): The KUDO Cassandra Operator makes it easy to deploy and manage Apache Cassandra on Kubernetes.
+* [Instaclustr cassandra-operator](https://github.com/instaclustr/cassandra-operator): The Cassandra operator manages Cassandra clusters deployed to Kubernetes and automates tasks related to operating a Cassandra cluster.
+* [Orange CassKop](https://orange-opensource.github.io/casskop/): The Orange Cassandra operator is a Kubernetes operator to automate provisioning, management, autoscaling and operations of Apache Cassandra clusters deployed to K8s.
+* [Sky Cassandra Operator](https://github.com/sky-uk/cassandra-operator): The Sky Cassandra Operator is a Kubernetes operator that manages Cassandra clusters inside Kubernetes.
+
+### Cassandra management sidecars
+
+* [DataStax Management API for Apache Cassandra](https://github.com/datastax/management-api-for-apache-cassandra): RESTful / Secure Management Sidecar for Apache Cassandra
+* [DataStax Spring Boot](https://github.com/datastax/spring-boot): Spring Boot extension
+* [Instaclustr cassandra-sidecar](https://github.com/instaclustr/cassandra-sidecar): This repository is home of a sidecar for Apache Cassandra database. Sidecar is meant to be run alongside of Cassandra instance and sidecar talks to Cassandra via JMX.
+
+### Developer Frameworks
+
+* [Django Cassandra Engine](http://r4fek.github.io/django-cassandra-engine/): Cassandra backend for Django Framework that allows you to use Cqlengine directly in your project.
+* [Express Cassandra](https://express-cassandra.readthedocs.io/en/stable/): Express-Cassandra is a Cassandra ORM/ODM/OGM for NodeJS with Elassandra & JanusGraph Support.
+* [Quarkus extension for Apache Cassandra](https://quarkus.io/guides/cassandra): An Apache Cassandra(R) extension for Quarkus. Quarkus is A Kubernetes Native Java stack tailored for OpenJDK HotSpot and GraalVM, crafted from the best of breed Java libraries and standards.
+* [Spring Data Cassandra](https://spring.io/projects/spring-data-cassandra): With the power to stay at a high level with annotated POJOs, or at a low level with high performance data ingestion capabilities, the Spring Data for Apache Cassandra templates are sure to meet every application need
+* [TestContainers](https://www.testcontainers.org/modules/databases/cassandra/): Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
+
+### Cassandra connectors 
+
+#### Apache Kafka
+
+* [Confluent Connect Cassandra](https://www.confluent.io/hub/confluentinc/kafka-connect-cassandra): The Confluent Cassandra Sink Connector is used to move messages from Kafka into Apache Cassandra.
+* [DataStax Sink Connector](https://downloads.datastax.com/#akc): The DataStax Apache Kafka Connector automatically takes records from Kafka topics and writes them to a DataStax Enterprise or Apache Cassandra™ database. This sink connector is deployed in the Kafka Connect framework and removes the need to build a custom solution to move data between these two systems. 
+* [Debezium Source Connector](https://github.com/debezium/debezium-incubator/tree/master/debezium-connector-cassandra): This connector is currently in incubating state, and Cassandra is different from the other Debezium connectors since it is not implemented on top of the Kafka Connect framework. 
+* [Lenses Sink Connector](https://docs.lenses.io/connectors/sink/cassandra.html): The Cassandra Sink allows you to write events from Kafka to Cassandra. The connector converts the value from the Kafka Connect SinkRecords to JSON and uses Cassandra’s JSON insert functionality to insert the rows. The task expects pre-created tables in Cassandra.
+* [Lenses Source Connector](https://docs.lenses.io/connectors/source/cassandra.html): Kafka Connect Cassandra is a Source Connector for reading data from Cassandra and writing to Kafka.
+
+#### Apache Spark
+
+* [DataStax Spark Cassandra Connector](https://github.com/datastax/spark-cassandra-connector): This library lets you expose Cassandra tables as Spark RDDs and Datasets/DataFrames, write Spark RDDs and Datasets/DataFrames to Cassandra tables, and execute arbitrary CQL queries in your Spark applications.
+
+#### Apache Flink
+
+* [Flink Sink Connector](https://ci.apache.org/projects/flink/flink-docs-stable/dev/connectors/cassandra.html): This connector provides sinks that writes data into a Apache Cassandra database.
+
+#### Apache Pulsar
+
+* [Pulsar Sink Connector](https://pulsar.apache.org/docs/en/io-quickstart/#connect-pulsar-to-cassandra): The Pulsar Cassandra Sink connector is used to write messages to a Cassandra Cluster.
