diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..b3b33738d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,28 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +blank_issues_enabled: true +contact_links: + - name: Ask on Discord + url: https://discord.gg/apache-iggy + about: Questions about using Iggy, or about what belongs on the Powered By page. + - name: Dev mailing list + url: https://lists.apache.org/list.html?dev@iggy.apache.org + about: Project discussion, proposals and release coordination. + - name: Report a bug in Iggy itself + url: https://github.com/apache/iggy/issues + about: This repository only tracks the website. Server, SDK and CLI issues go here. diff --git a/.github/ISSUE_TEMPLATE/organization-submission.yml b/.github/ISSUE_TEMPLATE/organization-submission.yml new file mode 100644 index 000000000..9d2834e37 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/organization-submission.yml @@ -0,0 +1,133 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +name: "Powered By Iggy submission" +description: "Add your organization or project to iggy.apache.org/powered-by" +title: "[Powered By] " +labels: ["powered-by"] +body: + - type: markdown + attributes: + value: | + Thanks for telling the community what you are building on Apache Iggy. + + Only the first three fields are required. Everything else is optional, + and an entry that is just a name and a link is perfectly normal. + + **This issue is public.** Only put things here you are happy to see on + a public website. + + - type: input + id: name + attributes: + label: Organization or project name + description: Exactly as it should be printed. + placeholder: Acme Inc + validations: + required: true + + - type: input + id: website + attributes: + label: Website + placeholder: https://example.com + validations: + required: true + + - type: dropdown + id: deployment_stage + attributes: + label: Deployment stage + description: >- + Recorded for the project's own understanding of adoption. The Powered + By page does not sort or label organizations by this. + options: + - Production + - Pilot / POC + - Evaluating + - Integration / community project + validations: + required: true + + - type: input + id: use_case + attributes: + label: What are you using Apache Iggy for? + description: >- + A short phrase. Becomes the category shown above your description. + placeholder: Change data capture + + - type: textarea + id: description + attributes: + label: Short description + description: >- + One to three sentences, in the third person. This is published as + written, so phrase it the way you want to be quoted. Leave it blank and + your entry appears in the logo wall without a write-up. + placeholder: >- + Acme Inc uses Apache Iggy as the transport behind its real-time + pricing engine, fanning market data out to pricing workers across three + regions. + + - type: input + id: technologies + attributes: + label: Relevant technologies and integrations + description: Optional. Comma separated; rendered as tags. + placeholder: Rust SDK, PostgreSQL CDC, Apache Iceberg + + - type: textarea + id: logo + attributes: + label: Logo + description: >- + Optional. Attach or link an SVG (preferred) or a transparent PNG at + least 400px wide. The site has a light and a dark theme, so two + variants are ideal. Supply one and the other theme shows your name as + text, which looks fine. We highly encourage your to submit the logo. + + - type: input + id: case_study + attributes: + label: Public case study or blog post + description: Optional. A link we can point readers at. + placeholder: https://example.com/blog/why-we-chose-iggy + + - type: input + id: contact + attributes: + label: Contact for follow-up + description: >- + Optional, and never published on the website. Note that this issue + itself is public, so if you would rather not post an address, leave + this blank -- a committer will reply in the thread, or you can email + dev@iggy.apache.org. + + - type: checkboxes + id: confirmations + attributes: + label: Confirmations + options: + - label: >- + The information above is accurate and cleared for publication on a + public website. + required: true + - label: >- + I am authorized to grant the Apache Software Foundation permission + to display the logo above, and I grant it. (Only needed if you want + a logo shown -- entries without it are published as text.) diff --git a/content/organizations/README.md b/content/organizations/README.md new file mode 100644 index 000000000..e1c6c0054 --- /dev/null +++ b/content/organizations/README.md @@ -0,0 +1,132 @@ + + +# Adding your organization to Powered By Iggy + +[iggy.apache.org/powered-by](https://iggy.apache.org/powered-by) lists the +organizations, projects and teams building with Apache Iggy. It is maintained +by the community: every entry arrives as an issue or a pull request from the +people who run the system. + +Production deployments, pilots, integrations and open source side projects are +all welcome. A team benchmarking Iggy against other streaming engines is as useful a data point +for the next reader as a fleet running it at scale. + +## Two ways to submit + +**Open an issue.** Use the +[Powered By Iggy submission form](https://github.com/apache/iggy-website/issues/new?template=organization-submission.yml). +Three required fields; a committer opens the pull request for you. + +**Send the pull request yourself.** + +1. Copy [`TEMPLATE.mdx`](TEMPLATE.mdx) to `content/organizations/.mdx`. + Use a lowercase hyphenated slug: `acme.mdx`. +2. Fill in the frontmatter. Delete every field you do not use. +3. Commit any logo files to `public/img/organizations/`. +4. Leave `draft: true`. A committer flips it to `false` once verified, and + that is what publishes the entry. +5. Open the PR. Conventional commit style, e.g. + `content(site): add Acme Inc to Powered By`. + +Run `npm install && npm run dev`, then open +to preview. Setting `draft: false` locally shows your entry; set it back to `draft: true` +before committing. + +## How the page decides what to show + +There are two levels, and the difference is whether you wrote a description. + +| You supply | Where it appears | +| --- | --- | +| Name only | Logo wall, unlinked | +| Name + website | Logo wall, linked to your site | +| Name + logo | Logo wall, showing your logo | +| ...plus a `description` | Also gets a card in **How Iggy is being used**, and the wall tile links to it | + +There is deliberately no way to get a use-case card without writing a real +description. Generated filler such as "Acme runs Apache Iggy in production" is +not published: it tells a reader nothing, and a page of it reads as marketing. +If all you can share is that you use Iggy, the logo wall is the right home and a +complete answer. + +## Field reference + +| Field | Required | Notes | +| --- | --- | --- | +| `name` | yes | Printed exactly as written. | +| `website` | yes | Omit rather than guess; the tile renders unlinked. | +| `deploymentStatus` | yes | `production`, `pilot`, `evaluating` or `integration`. Not shown on the page. | +| `useCaseCategory` | no | Short phrase, e.g. `Observability, AI Infrastructure`. | +| `description` | no | One to three sentences, third person. Promotes the entry into the use-case section. | +| `technologies` | no | List of short strings, rendered as tags. | +| `caseStudyUrl` | no | Public write-up to link. | +| `quote` / `quoteAuthor` | no | Attributed pull quote. | +| `logo` | no | Artwork legible on a **light** background. | +| `logoDark` | no | Artwork legible on a **dark** background. | +| `permissionConfirmed` | no | Defaults to `false`. **No logo renders until this is `true`.** | +| `draft` | no | Defaults to `true`. Committers publish by setting `false`. | +| `submittedBy` | no | GitHub handle, so committers know who to follow up with. | + +Anything below the frontmatter is maintainer notes. It is not rendered, but it +is still MDX: a bare `<` starts a JSX tag and fails the build. Write links as +`[text](url)` rather than ``, and wrap placeholders like +`` in backticks. + +### Logos and the two themes + +A single logo usually works in only one theme. Supply artwork for whichever +backgrounds you have; the other theme falls back to your name as text, and +plenty of entries are text-only by choice. + +SVG is preferred; a transparent PNG at least 400px wide is fine. Tiles cap +logos at roughly 144x36px, so wordmarks read better than tall lockups. + +The build checks that the file named in the frontmatter actually exists in +`public/`. A missing file falls back to text rather than shipping a broken +image, so a PR can safely land the frontmatter and the artwork separately. + +### Logo permission + +`permissionConfirmed` is not a formality. Setting it to `true` is your +statement that you are authorized to grant the ASF permission to display your +mark on iggy.apache.org. Reviewers will ask who confirmed it. + +Adding an organization you do not work for? Leave it `false` and say so in the +PR. Someone from that organization can grant permission in a follow-up. + +## What committers check before publishing + +- The submission comes from the organization, or the PR says who confirmed it. +- Any `description` describes real usage and reads as a record, not an advert. +- `permissionConfirmed` is `true` only where permission was actually granted. +- Logo files are committed to the repo, not hotlinked. +- No field was filled in by guessing. An empty field is always better. + +Entries go stale. If something listed here is no longer accurate, open an +issue or a PR: removing an entry needs no more justification than adding one. + +## Trademark note + +Company names, product names and logos are the property of their respective +owners. Inclusion on the Powered By page does not imply that the ASF endorses +any listed organization, or that any listed organization endorses Apache Iggy +beyond the description it submitted. See the +[ASF trademark policy](https://www.apache.org/foundation/marks/) for how +Apache marks themselves may be used. diff --git a/content/organizations/TEMPLATE.mdx b/content/organizations/TEMPLATE.mdx new file mode 100644 index 000000000..e7c50655e --- /dev/null +++ b/content/organizations/TEMPLATE.mdx @@ -0,0 +1,109 @@ +--- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# ===================================================================== +# Powered By Iggy -- organization entry template +# +# 1. Copy to content/organizations/.mdx +# (lowercase, hyphenated: content/organizations/acme.mdx) +# 2. Fill in what you have. Delete every field you do not use. +# 3. Put any logo files in public/img/organizations/. +# 4. Open a pull request against apache/iggy-website. +# +# A committer reviews the entry and sets `draft: false` to publish it. +# Field reference: content/organizations/README.md +# ===================================================================== + +# REQUIRED. Printed exactly as written. +name: Acme Inc + +# REQUIRED. Public URL. Leave it out rather than guessing -- the tile renders unlinked. +website: https://example.com + +# Optional. A short phrase describing the workload. Shown above the +# description in "How Iggy is being used". +useCaseCategory: Change data capture + +# Optional, and the field that matters most. One to three sentences, third +# person, published as written. Supplying it moves your entry from the logo +# wall into the use-case section. +# +# Leave it out unless there is something real to say. An entry that is just a +# name and a logo is a perfectly good entry; a padded one is worse than none. +description: >- + Acme Streaming uses Apache Iggy as the transport behind its real-time pricing + engine, fanning market data out to pricing workers across three regions. + +# Optional. Rendered as tags. Keep them short. +technologies: + - Rust SDK + - PostgreSQL CDC + +# Optional. A public write-up we can link to. +caseStudyUrl: https://example.com/blog/why-we-chose-iggy + +# Optional. Attributed pull quote. +quote: Iggy gave us the fan-out latency we needed without another JVM to run. +quoteAuthor: Name, Role at Acme Streaming + +# --------------------------------------------------------------------- +# Logos (all optional) +# +# The site has a light and a dark theme. +# logo -- legible on a LIGHT background +# logoDark -- legible on a DARK background +# Supply what you have; the theme with no artwork shows your name as text. +# +# SVG preferred, transparent PNG at least 400px wide is fine. Commit files to +# public/img/organizations/ and reference them from /img/organizations/. +# +# permissionConfirmed MUST be true for any logo to render. Setting it is your +# statement that you are authorized to grant the ASF permission to display the +# mark on iggy.apache.org. The build also checks the file is actually present, +# so a missing file falls back to text rather than shipping a broken image. +# --------------------------------------------------------------------- +logo: /img/organizations/acme-streaming.svg +logoDark: /img/organizations/acme-streaming-dark.svg +permissionConfirmed: false + +# REQUIRED: production | pilot | evaluating | integration +# +# Recorded for the project's own understanding of adoption. It is NOT used to +# group or label organizations on the page -- see the README for why. +deploymentStatus: production + +# Reserved for entries with a quote or case study. Sorts them first. +featured: false + +# Leave as true. A committer sets it to false once the submission is verified, +# and that is what publishes the entry. +draft: true + +# Optional. GitHub handle of whoever submitted this. +submittedBy: "@your-github-handle" +--- + +## Maintainer notes + +Nothing below the frontmatter is rendered on the page. Use this space for +anything a reviewer should know: who confirmed the logo permission, what is +still outstanding, which URL was guessed. + +This is MDX, so a bare `<` starts a JSX tag and fails the build. Write links +as `[text](url)`, not ``, and wrap placeholders like +`` in backticks. diff --git a/content/organizations/hotdata.mdx b/content/organizations/hotdata.mdx new file mode 100644 index 000000000..6367947b4 --- /dev/null +++ b/content/organizations/hotdata.mdx @@ -0,0 +1,43 @@ +--- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +name: Hotdata +website: https://hotdata.dev +logo: /img/organizations/hotdata.svg +logoDark: /img/organizations/hotdata-dark.svg +permissionConfirmed: true +technologies: [] +draft: false +--- + +## Maintainer notes + +The body of this file is not rendered on the page. It is where a committer +records what still needs confirming. + +Added at a maintainer's request. No website, use case or deployment status was +supplied, so the tile renders as the name in text and is not clickable. + +- [ ] **Add `website`.** It was deliberately left out rather than guessed, so + the tile currently links nowhere. +- [ ] Ask what Hotdata uses Iggy for, and add a `description` plus a + `useCaseCategory` if there is something substantive to say. +- [ ] Set `deploymentStatus` (`production`, `pilot`, `evaluating` or + `integration`). Recorded for the project's own use; not shown on the page. +- [ ] Commit `public/img/organizations/hotdata.svg` and + `public/img/organizations/hotdata-dark.svg`, and confirm in writing that + Hotdata authorizes the ASF to display its logo. diff --git a/content/organizations/lakesail.mdx b/content/organizations/lakesail.mdx new file mode 100644 index 000000000..4aab41031 --- /dev/null +++ b/content/organizations/lakesail.mdx @@ -0,0 +1,46 @@ +--- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +name: LakeSail +website: https://lakesail.com +useCaseCategory: Real-time Analytics +logo: /img/organizations/lakesail.svg +logoDark: /img/organizations/lakesail-dark.svg +description: + LakeSail combines Apache Iggy for real-time streaming with Sail for distributed data processing, enabling an end-to-end data infrastructure stack written in Rust. The integration brings together Iggy’s low-latency, resource-efficient streaming with Sail’s distributed compute engine for building high-performance real-time data and analytics pipelines. +permissionConfirmed: true +technologies: [] +draft: false +--- + +## Maintainer notes + +The body of this file is not rendered on the page. It is where a committer +records what still needs confirming. + +Added at a maintainer's request. No website, use case or deployment status was +supplied, so the tile renders as the name in text and is not clickable. + +- [ ] **Add `website`.** It was deliberately left out rather than guessed, so + the tile currently links nowhere. +- [ ] Ask what LakeSail uses Iggy for, and add a `description` plus a + `useCaseCategory` if there is something substantive to say. +- [ ] Set `deploymentStatus` (`production`, `pilot`, `evaluating` or + `integration`). Recorded for the project's own use; not shown on the page. +- [ ] Commit `public/img/organizations/lakesail.svg` and + `public/img/organizations/lakesail-dark.svg`, and confirm in writing that + LakeSail authorizes the ASF to display its logo. diff --git a/content/organizations/laserdata.mdx b/content/organizations/laserdata.mdx new file mode 100644 index 000000000..aaeb0af60 --- /dev/null +++ b/content/organizations/laserdata.mdx @@ -0,0 +1,46 @@ +--- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +name: LaserData +website: https://laserdata.com +useCaseCategory: Real-time & AI Data Infrastructure +logo: /img/organizations/laserdata.png +logoDark: /img/organizations/laserdata-dark.png +permissionConfirmed: true +description: + LaserData uses Apache Iggy as the real-time streaming foundation of its data infrastructure platform. LaserData builds on Iggy with managed cloud and BYOC deployments, enterprise security and governance, connectors, and higher-level data and AI agent infrastructure capabilities. +technologies: [] +deploymentStatus: production +draft: false +--- + +## Maintainer notes + +The body of this file is not rendered on the page. It is where a committer +records what still needs confirming. + +Added at a maintainer's request. Name and logo only until someone supplies a +use case. + +- [ ] Ask what LaserData uses Iggy for, and add a `description` plus a + `useCaseCategory`. Until then the entry stays in the logo wall, which is + a fine place for it. +- [ ] Commit `public/img/organizations/laserdata.svg` (legible on a **light** + background) and `public/img/organizations/laserdata-dark.svg` (legible on a + **dark** background). Until the files exist the tile shows the name as + text; nothing breaks. Delete whichever frontmatter line has no artwork. +- [ ] Confirm in writing that LaserData authorizes the ASF to display its logo. diff --git a/content/organizations/measure.mdx b/content/organizations/measure.mdx new file mode 100644 index 000000000..2fdafc359 --- /dev/null +++ b/content/organizations/measure.mdx @@ -0,0 +1,45 @@ +--- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +name: Measure +website: https://measure.sh +useCaseCategory: Observability +logo: /img/organizations/measure.svg +logoDark: /img/organizations/measure-dark.svg +permissionConfirmed: true +description: >- + Apache Iggy powers Measure’s ingestion pipeline, processing billions of mobile data points every week. Measure's ingestion grew 8x while reducing compute costs by 80%, with Iggy providing sub-ms latency and throughput up to 3 GB/s while absorbing ingestion spikes of up to 10x. +technologies: [] +draft: false +--- + +## Maintainer notes + +The source given was a [LinkedIn post](https://lnkd.in/p/g7ghXQen) and the [GitHub PR](https://github.com/measure-sh/measure/pull/3314) The product +description above comes from [measure.sh](https://measure.sh). + +Before this is considered done: + +- [ ] Fill in `technologies` with the integrations the post names (SDKs, + storage, transport). +- [ ] Consider `caseStudyUrl`. The LinkedIn link was found publicly but an official blog post or the project README would be better. +- [ ] Set `deploymentStatus` once known (`production`, `pilot`, `evaluating` + or `integration`). +- [ ] Ask for a logo, and confirm in writing that measure.sh authorizes the + ASF to display it, then add `logo` / `logoDark` and set + `permissionConfirmed: true`. +- [ ] Confirm the entry with the measure.sh team before relying on it. diff --git a/content/organizations/onehouse.mdx b/content/organizations/onehouse.mdx new file mode 100644 index 000000000..184e6a242 --- /dev/null +++ b/content/organizations/onehouse.mdx @@ -0,0 +1,42 @@ +--- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +name: Onehouse +logo: /img/organizations/onehouse.svg +logoDark: /img/organizations/onehouse-dark.svg +permissionConfirmed: true +technologies: [] +# draft: false +--- + +## Maintainer notes + +The body of this file is not rendered on the page. It is where a committer +records what still needs confirming. + +Added at a maintainer's request. No website, use case or deployment status was +supplied, so the tile renders as the name in text and is not clickable. + +- [ ] **Add `website`.** It was deliberately left out rather than guessed, so + the tile currently links nowhere. +- [ ] Ask what Onehouse uses Iggy for, and add a `description` plus a + `useCaseCategory` if there is something substantive to say. +- [ ] Set `deploymentStatus` (`production`, `pilot`, `evaluating` or + `integration`). Recorded for the project's own use; not shown on the page. +- [ ] Commit `public/img/organizations/onehouse.svg` and + `public/img/organizations/onehouse-dark.svg`, and confirm in writing that + Onehouse authorizes the ASF to display its logo. diff --git a/content/organizations/rocketride.mdx b/content/organizations/rocketride.mdx new file mode 100644 index 000000000..6666f8cfa --- /dev/null +++ b/content/organizations/rocketride.mdx @@ -0,0 +1,43 @@ +--- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +name: RocketRide +website: https://www.rocketride.ai +logo: /img/organizations/rocketride.svg +logoDark: /img/organizations/rocketride-dark.svg +permissionConfirmed: true +technologies: [] +draft: false +--- + +## Maintainer notes + +The body of this file is not rendered on the page. It is where a committer +records what still needs confirming. + +Added at a maintainer's request. No website, use case or deployment status was +supplied, so the tile renders as the name in text and is not clickable. + +- [ ] **Add `website`.** It was deliberately left out rather than guessed, so + the tile currently links nowhere. +- [ ] Ask what RocketRide uses Iggy for, and add a `description` plus a + `useCaseCategory` if there is something substantive to say. +- [ ] Set `deploymentStatus` (`production`, `pilot`, `evaluating` or + `integration`). Recorded for the project's own use; not shown on the page. +- [ ] Commit `public/img/organizations/rocketride.svg` and + `public/img/organizations/rocketride-dark.svg`, and confirm in writing that + RocketRide authorizes the ASF to display its logo. diff --git a/content/organizations/serro.mdx b/content/organizations/serro.mdx new file mode 100644 index 000000000..94d3ba14b --- /dev/null +++ b/content/organizations/serro.mdx @@ -0,0 +1,44 @@ +--- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +name: Serro +website: https://serro.ai +logo: /img/organizations/serro.svg +logoDark: /img/organizations/serro-dark.svg +permissionConfirmed: true +technologies: [] +deploymentStatus: production +draft: false +--- + +## Maintainer notes + +The body of this file is not rendered on the page. It is where a committer +records what still needs confirming. + +Added at a maintainer's request. Name and logo only until someone supplies a +use case. + +- [ ] **Confirm the website URL.** `serro.com` was guessed, not verified. +- [ ] Ask what Serro uses Iggy for, and add a `description` plus a + `useCaseCategory`. Until then the entry stays in the logo wall, which is + a fine place for it. +- [ ] Commit `public/img/organizations/serro.svg` (legible on a **light** + background) and `public/img/organizations/serro-dark.svg` (legible on a + **dark** background). Until the files exist the tile shows the name as + text; nothing breaks. Delete whichever frontmatter line has no artwork. +- [ ] Confirm in writing that Serro authorizes the ASF to display its logo. diff --git a/content/organizations/velodb.mdx b/content/organizations/velodb.mdx new file mode 100644 index 000000000..ac305a356 --- /dev/null +++ b/content/organizations/velodb.mdx @@ -0,0 +1,44 @@ +--- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +name: VeloDB +website: https://www.velodb.io/ +useCaseCategory: Real-time Analytics +logo: /img/organizations/velodb.png +logoDark: /img/organizations/velodb-dark.svg +permissionConfirmed: true +technologies: [] +draft: false +--- + +## Maintainer notes + +The body of this file is not rendered on the page. It is where a committer +records what still needs confirming. + +Added at a maintainer's request. No website, use case or deployment status was +supplied, so the tile renders as the name in text and is not clickable. + +- [ ] **Add `website`.** It was deliberately left out rather than guessed, so + the tile currently links nowhere. +- [ ] Ask what VeloDB uses Iggy for, and add a `description` plus a + `useCaseCategory` if there is something substantive to say. +- [ ] Set `deploymentStatus` (`production`, `pilot`, `evaluating` or + `integration`). Recorded for the project's own use; not shown on the page. +- [ ] Commit `public/img/organizations/velodb.svg` and + `public/img/organizations/velodb-dark.svg`, and confirm in writing that + VeloDB authorizes the ASF to display its logo. diff --git a/content/organizations/videodb.mdx b/content/organizations/videodb.mdx new file mode 100644 index 000000000..b0684f778 --- /dev/null +++ b/content/organizations/videodb.mdx @@ -0,0 +1,47 @@ +--- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +name: VideoDB +website: https://videodb.io +useCaseCategory: Real-time Data Ingestion +logo: /img/organizations/videodb.png +logoDark: /img/organizations/videodb-dark.png +permissionConfirmed: true +description: + VideoDB leverages Apache Iggy for high-volume, real-time video processing, designed to ingest approximately 240 TB of frame data per day while delivering single-digit millisecond P99 latencies. +technologies: [] +deploymentStatus: production +draft: false +--- + +## Maintainer notes + +The body of this file is not rendered on the page. It is where a committer +records what still needs confirming. + +Added at a maintainer's request. Name and logo only until someone supplies a +use case. + +- [ ] **Confirm the website URL.** `videodb.io` was guessed, not verified. +- [ ] Ask what VideoDB uses Iggy for, and add a `description` plus a + `useCaseCategory`. Until then the entry stays in the logo wall, which is + a fine place for it. +- [ ] Commit `public/img/organizations/videodb.svg` (legible on a **light** + background) and `public/img/organizations/videodb-dark.svg` (legible on a + **dark** background). Until the files exist the tile shows the name as + text; nothing breaks. Delete whichever frontmatter line has no artwork. +- [ ] Confirm in writing that VideoDB authorizes the ASF to display its logo. diff --git a/public/img/emetlabs-light.svg b/public/img/emetlabs-light.svg deleted file mode 100644 index 6cc65389d..000000000 --- a/public/img/emetlabs-light.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/img/hugin-light.svg b/public/img/hugin-light.svg deleted file mode 100644 index 0f13ef9da..000000000 --- a/public/img/hugin-light.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/img/neferdata-light.svg b/public/img/neferdata-light.svg deleted file mode 100644 index b29f7d35d..000000000 --- a/public/img/neferdata-light.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/img/organizations/hotdata-dark.svg b/public/img/organizations/hotdata-dark.svg new file mode 100644 index 000000000..43f2f8096 --- /dev/null +++ b/public/img/organizations/hotdata-dark.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/img/organizations/hotdata.svg b/public/img/organizations/hotdata.svg new file mode 100644 index 000000000..551bbc5c3 --- /dev/null +++ b/public/img/organizations/hotdata.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/public/img/organizations/lakesail-dark.svg b/public/img/organizations/lakesail-dark.svg new file mode 100644 index 000000000..c46b30416 --- /dev/null +++ b/public/img/organizations/lakesail-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/organizations/lakesail.svg b/public/img/organizations/lakesail.svg new file mode 100644 index 000000000..92c06ae9a --- /dev/null +++ b/public/img/organizations/lakesail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/organizations/laserdata-dark.png b/public/img/organizations/laserdata-dark.png new file mode 100644 index 000000000..106897c47 Binary files /dev/null and b/public/img/organizations/laserdata-dark.png differ diff --git a/public/img/organizations/laserdata.png b/public/img/organizations/laserdata.png new file mode 100644 index 000000000..386e732de Binary files /dev/null and b/public/img/organizations/laserdata.png differ diff --git a/public/img/organizations/measure-dark.svg b/public/img/organizations/measure-dark.svg new file mode 100644 index 000000000..9f1f9cdc1 --- /dev/null +++ b/public/img/organizations/measure-dark.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/img/organizations/measure.svg b/public/img/organizations/measure.svg new file mode 100644 index 000000000..66f7ba904 --- /dev/null +++ b/public/img/organizations/measure.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/img/organizations/rocketride-dark.svg b/public/img/organizations/rocketride-dark.svg new file mode 100644 index 000000000..ba22f0e11 --- /dev/null +++ b/public/img/organizations/rocketride-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/organizations/rocketride.svg b/public/img/organizations/rocketride.svg new file mode 100644 index 000000000..9c44d689e --- /dev/null +++ b/public/img/organizations/rocketride.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/organizations/serro-dark.svg b/public/img/organizations/serro-dark.svg new file mode 100644 index 000000000..1d64be903 --- /dev/null +++ b/public/img/organizations/serro-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/organizations/serro.svg b/public/img/organizations/serro.svg new file mode 100644 index 000000000..55c0201a7 --- /dev/null +++ b/public/img/organizations/serro.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/img/organizations/velodb-dark.svg b/public/img/organizations/velodb-dark.svg new file mode 100644 index 000000000..f95f3f060 --- /dev/null +++ b/public/img/organizations/velodb-dark.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/img/organizations/velodb.png b/public/img/organizations/velodb.png new file mode 100644 index 000000000..aa86b895c Binary files /dev/null and b/public/img/organizations/velodb.png differ diff --git a/public/img/organizations/velodb.svg b/public/img/organizations/velodb.svg new file mode 100644 index 000000000..6f033c715 --- /dev/null +++ b/public/img/organizations/velodb.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/img/organizations/videodb-dark.png b/public/img/organizations/videodb-dark.png new file mode 100644 index 000000000..23b7bc8a4 Binary files /dev/null and b/public/img/organizations/videodb-dark.png differ diff --git a/public/img/organizations/videodb.png b/public/img/organizations/videodb.png new file mode 100644 index 000000000..330d8b790 Binary files /dev/null and b/public/img/organizations/videodb.png differ diff --git a/source.config.ts b/source.config.ts index e192c2c87..0bc71dbec 100644 --- a/source.config.ts +++ b/source.config.ts @@ -44,6 +44,61 @@ export const blogPosts = defineCollections({ }), }); +export const organizations = defineCollections({ + type: "doc", + dir: "content/organizations", + // Submission instructions live beside the entries for contributors, but + // only completed organization MDX files belong to this collection. + files: ["**/*.mdx", "!TEMPLATE.mdx"], + schema: z.object({ + // Organization or project name, exactly as it should be printed. + name: z.string(), + // Public URL. Omit when it is not known -- the entry renders unlinked + // rather than pointing somewhere unverified. + website: z.string().optional(), + + // Logo variants. `logo` must be legible on a light background, `logoDark` + // on a dark one. Either may be omitted; the wall falls back to the name + // set as text for whichever theme has no artwork. + logo: z.string().optional(), + logoDark: z.string().optional(), + // Logos render only when the submitter has confirmed they are authorized + // to grant the ASF permission to display the mark, AND the file is + // actually committed. See content/organizations/README.md. + permissionConfirmed: z.boolean().optional().default(false), + + // A short category for the workload, e.g. "AI infrastructure", + // "Change data capture", "Observability". Rendered as a label above the + // description in the "How Iggy is being used" section. + useCaseCategory: z.string().optional(), + // One to three sentences about what the organization uses Iggy for. + // Presence of this field is what promotes an entry out of the logo wall + // and into the use-case section -- so leave it empty unless there is + // something substantive to say. Never write filler. + description: z.string().optional(), + technologies: z.array(z.string()).optional().default([]), + since: z.string().optional(), + caseStudyUrl: z.string().optional(), + quote: z.string().optional(), + quoteAuthor: z.string().optional(), + + // Collected at submission time and kept for the project's own records. + // Deliberately NOT used as the page's public taxonomy: with adoption + // still early, sorting a handful of names into production vs evaluating + // advertises how few there are. Revisit when the numbers justify a + // "Running Iggy in production" cut. + deploymentStatus: z + .enum(["production", "pilot", "evaluating", "integration"]) + .optional(), + + // Reserved for entries that earn a richer treatment (quote, case study). + featured: z.boolean().optional().default(false), + // Entries stay hidden until a committer has verified the submission. + draft: z.boolean().optional().default(true), + submittedBy: z.string().optional(), + }), +}); + export default defineConfig({ mdxOptions: { remarkPlugins: [remarkMdxMermaid], diff --git a/src/app/(site)/powered-by/page.tsx b/src/app/(site)/powered-by/page.tsx new file mode 100644 index 000000000..f3b24c2e6 --- /dev/null +++ b/src/app/(site)/powered-by/page.tsx @@ -0,0 +1,167 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import type { Metadata } from "next"; + +import { + OrganizationWall, + UseCaseCard, +} from "@/components/organization-showcase"; +import { + organizationSlug, + organizationsWithUseCase, + publishedOrganizations, + SUBMIT_GUIDE_URL, + SUBMIT_ISSUE_URL, +} from "@/lib/organizations"; +import { absoluteUrl, serializeJsonLd } from "@/lib/site"; + +export const metadata: Metadata = { + title: "Powered By Iggy", + description: + "Organizations, developers and open source projects building with Apache Iggy, and what they use it for.", +}; + +export default function PoweredByPage() { + const allOrganizations = publishedOrganizations(); + const useCases = organizationsWithUseCase(); + + /** + * Structured data, following the pattern in the root layout: it restates + * only what the page already says in HTML, so an answer engine reading the + * markup and one reading the graph arrive at the same claims. + */ + const structuredData = { + "@context": "https://schema.org", + "@type": "ItemList", + name: "Organizations building with Apache Iggy", + url: absoluteUrl("/powered-by"), + numberOfItems: allOrganizations.length, + itemListElement: allOrganizations.map((entry, index) => ({ + "@type": "ListItem", + position: index + 1, + item: { + "@type": "Organization", + name: entry.name, + ...(entry.website ? { url: entry.website } : {}), + ...(entry.description ? { description: entry.description } : {}), + }, + })), + }; + + return ( +
+
+
+

+ Powered By Apache Iggy™ +

+

+ From first experiments to production systems, teams are using Apache Iggy to power real-time data across AI and agents, financial services, observability, cybersecurity, IoT and edge, gaming, communications, analytics and big data infrastructure. Iggy is built for workloads where latency, throughput and efficiency matter. +

+

+ See how organizations, developers and open source projects are + building with Iggy. +

+ + Add your organization + +
+ + {useCases.length > 0 && ( +
+

+ How Iggy is being used +

+

+ Workloads the community has shared in their own words. +

+
1 ? "md:grid-cols-2" : ""}`} + > + {useCases.map((entry) => ( + + ))} +
+
+ )} + + {allOrganizations.length > 0 && ( +
+

+ Organizations building & integrating with Iggy +

+

+ Companies, projects and teams that have told the community they + are using or building with Apache Iggy. +

+
+ +
+
+ )} + +
+

+ Evaluating or Building with Iggy? Tell the community. +

+

+ Exploring Iggy, running a POC, building an integration, or already in production? You’re part of the story. We’d love to hear what you’re building. +

+ + Share your use case on GitHub + +

+ Prefer to send the pull request yourself? See the{" "} + + submission guide + + . +

+
+ +
+

+ Usage information on this page comes from community submissions as well as publicly available sources, including project documentation, GitHub issues and pull requests, blog posts, conference talks, and public social media posts. Where possible, Apache Iggy committers review entries and link to the original source. Usage, deployment stage, and other details may change over time and should be understood in the context of the cited source. Company names, product names, trademarks, and logos are the property of their respective owners. Inclusion on this page is for informational and community purposes and does not imply endorsement by the Apache Software Foundation or by the organizations listed. +

+
+ + " can never close the tag. + * + * `src/app/layout.tsx` still carries its own private copy of this. It was left + * alone deliberately: that file is under active change elsewhere, and folding + * the two together is not worth a merge conflict. Worth de-duplicating the + * next time layout.tsx is touched for another reason. + */ +export function serializeJsonLd(data: unknown): string { + return JSON.stringify(data).replace(/