This is an automated email from the ASF dual-hosted git repository.

wuchong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fluss.git


The following commit(s) were added to refs/heads/main by this push:
     new e47651496 [website] Add contribute a blog post guide (#3182)
e47651496 is described below

commit e4765149690d6ebaa9274898faedc62c993ca994
Author: Trevin Chow <[email protected]>
AuthorDate: Sun May 10 09:12:37 2026 -0700

    [website] Add contribute a blog post guide (#3182)
---
 .../how-to-contribute/contribute-blog-posts.md     | 152 +++++++++++++++++++++
 .../community/how-to-contribute/contribute-code.md |   2 +-
 .../community/how-to-contribute/contribute-docs.md |   2 +-
 .../how-to-contribute/review-pull-requests.md      |   2 +-
 4 files changed, 155 insertions(+), 3 deletions(-)

diff --git a/website/community/how-to-contribute/contribute-blog-posts.md 
b/website/community/how-to-contribute/contribute-blog-posts.md
new file mode 100644
index 000000000..17e827912
--- /dev/null
+++ b/website/community/how-to-contribute/contribute-blog-posts.md
@@ -0,0 +1,152 @@
+---
+title: Contribute Blog Posts
+sidebar_position: 4
+---
+
+# Contribute Blog Posts
+
+The [Apache Fluss blog](https://fluss.apache.org/blog) is a space for the 
community to share use cases, deep dives, release announcements, and project 
updates. Blog posts are authored by community members and reviewed by 
committers before being published.
+
+This guide walks you through submitting a blog post, from proposing the topic 
to getting it live on the site.
+
+Blog content lives in its own repository, 
[apache/fluss-blog](https://github.com/apache/fluss-blog), which is a 
Docusaurus 3 site built and deployed separately from the main documentation.
+
+## Propose Your Topic First
+
+Before writing, open an issue in 
[apache/fluss-blog](https://github.com/apache/fluss-blog/issues) describing the 
post you would like to write. Include:
+
+- A working title.
+- A short summary (a few sentences) of what you plan to cover.
+- Whether the post is a tutorial, case study, deep dive, release note, or 
something else.
+- A target length and any code samples or diagrams you plan to include.
+
+Getting feedback early avoids two people writing the same post and gives 
committers a chance to flag overlap with upcoming announcements.
+
+## Fork and Clone the Blog Repository
+
+```bash
+git clone https://github.com/<your-username>/fluss-blog.git
+cd fluss-blog
+npm install
+npm run start
+```
+
+The development server runs at `http://localhost:3000` with hot reload, so 
edits show up immediately.
+
+## Repository Layout
+
+```
+├── blog/                    # Blog content
+│   ├── YYYY-MM-DD-slug.md   # Blog posts (Markdown or MDX)
+│   ├── assets/              # Post-specific images and media
+│   ├── releases/            # Release announcement posts
+│   ├── static/              # Blog-related static files (for example, avatars)
+│   ├── authors.yml          # Author profiles
+│   └── tags.yml             # Tag definitions
+├── static/                  # Global static assets (logo, favicon)
+├── src/css/                 # Custom CSS
+├── docusaurus.config.ts     # Site configuration
+└── package.json
+```
+
+## Write the Post
+
+### 1. Create the Markdown file
+
+Add a new file under `blog/` using this naming convention:
+
+```
+blog/YYYY-MM-DD-my-post-slug.md
+```
+
+Use the date you expect the post to be merged and a short, URL-safe slug.
+
+### 2. Add frontmatter
+
+Every post must start with YAML frontmatter:
+
+```yaml
+---
+slug: my-post-slug
+title: "My Blog Post Title"
+date: YYYY-MM-DD
+authors: [your_key]
+tags: [apache-fluss]
+image: ./assets/my_post/banner.png
+---
+```
+
+- `slug` — URL path for the post (for example, `/blog/my-post-slug`).
+- `authors` — List of author keys defined in `blog/authors.yml`.
+- `tags` — List of tag keys defined in `blog/tags.yml`.
+- `image` — Optional cover image used for social sharing (Open Graph previews).
+
+### 3. Add images
+
+Place post-specific images in `blog/assets/<post_name>/` and reference them 
with relative paths from the post:
+
+```markdown
+![My Diagram](assets/my_post/diagram.png)
+```
+
+Keep images reasonably sized (compressed PNG or SVG) so the site stays fast to 
load.
+
+### 4. Add yourself as an author
+
+If this is your first post, add an entry to `blog/authors.yml`:
+
+```yaml
+your_key:
+  name: Your Name
+  title: Your Title
+  url: https://github.com/your-github
+  image_url: /avatars/your-avatar.png
+```
+
+Place your avatar image in `blog/static/avatars/`.
+
+### 5. Register new tags
+
+If your post uses a tag that does not yet exist, define it in `blog/tags.yml`:
+
+```yaml
+my-new-tag:
+  label: 'My New Tag'
+```
+
+Reuse existing tags when you can; only add new ones when none of them fit.
+
+## Preview and Build Locally
+
+```bash
+# Production build
+npm run build
+
+# Preview the production build locally
+npm run serve
+```
+
+Run the production build before opening a pull request; the Docusaurus build 
catches broken links, missing frontmatter fields, and other issues the dev 
server does not.
+
+## Submitting Your Post
+
+1. Commit your changes with a descriptive message:
+
+```bash
+git add .
+git commit -m "blog: add post on <topic>"
+```
+
+2. Push to your fork:
+
+```bash
+git push origin your-branch-name
+```
+
+3. Open a pull request against 
[apache/fluss-blog](https://github.com/apache/fluss-blog), linking the topic 
issue you opened earlier.
+
+## Review and Publication
+
+Committers review the post for technical accuracy, tone, and fit with the 
broader project narrative. Expect light copy edits; substantive feedback comes 
first in the linked issue.
+
+Once the pull request merges into `main`, a CI pipeline automatically builds 
and publishes the new content to the [Apache Fluss 
website](https://fluss.apache.org/blog). No manual deploy step is required.
diff --git a/website/community/how-to-contribute/contribute-code.md 
b/website/community/how-to-contribute/contribute-code.md
index be1f3d2d1..affadb37d 100644
--- a/website/community/how-to-contribute/contribute-code.md
+++ b/website/community/how-to-contribute/contribute-code.md
@@ -1,6 +1,6 @@
 ---
 title: Contribute Code
-sidebar_position: 1
+sidebar_position: 2
 ---
 
 # Contribute Code
diff --git a/website/community/how-to-contribute/contribute-docs.md 
b/website/community/how-to-contribute/contribute-docs.md
index 1faedde7f..676ce8906 100644
--- a/website/community/how-to-contribute/contribute-docs.md
+++ b/website/community/how-to-contribute/contribute-docs.md
@@ -1,6 +1,6 @@
 ---
 title: Contribute Documentation
-sidebar_position: 1
+sidebar_position: 3
 ---
 
 # Contribute Documentation
diff --git a/website/community/how-to-contribute/review-pull-requests.md 
b/website/community/how-to-contribute/review-pull-requests.md
index 52f9ae5cb..f5e87037b 100644
--- a/website/community/how-to-contribute/review-pull-requests.md
+++ b/website/community/how-to-contribute/review-pull-requests.md
@@ -1,6 +1,6 @@
 ---
 title: Review Pull Requests
-sidebar_position: 1
+sidebar_position: 5
 ---
 
 # How to Review a Pull Request

Reply via email to