Skip to content

Commit 25fb9be

Browse files
Merge pull request #381 from basementstudio/fix/blogpost-layout
Fix/blogpost layout
2 parents 3ee117a + 86d040c commit 25fb9be

File tree

2 files changed

+27
-16
lines changed

2 files changed

+27
-16
lines changed

apps/website/components/blog/hero.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,20 @@ export function BlogHero({ featuredPost }: BlogHeroProps) {
1212

1313
return (
1414
<Link href={`/blog/${featuredPost.slug}`} className="block col-span-12">
15-
<section className="relative group overflow-visible h-full mb-8 md:mb-12">
16-
<div className="relative border border-brand-neutral-500 group-hover:border-brand-neutral-300 h-full w-full flex flex-col md:flex-row">
17-
<div className="w-full md:w-1/2 aspect-video md:border-r border-brand-neutral-500 flex-shrink-0 relative overflow-hidden mb-4 md:mb-0 group-hover:border-brand-neutral-300">
15+
<section className="relative group overflow-visible mb-2">
16+
<div className="relative border border-brand-neutral-500 group-hover:border-brand-neutral-300 w-full flex flex-col md:flex-row">
17+
<div className="w-full md:w-1/2 md:border-r border-brand-neutral-500 overflow-hidden mb-4 md:mb-0 group-hover:border-brand-neutral-300">
1818
{image ? (
1919
<Image
2020
src={image}
2121
alt={featuredPost.title}
22-
fill
23-
className="object-contain"
22+
width={0}
23+
height={0}
2424
sizes="(max-width: 768px) 100vw, 50vw"
25+
className="w-full h-auto"
2526
/>
2627
) : (
27-
<div className="w-full h-full flex items-center justify-center text-brand-neutral-200 text-sm">
28+
<div className="w-full aspect-video flex items-center justify-center text-brand-neutral-200 text-sm">
2829
No preview image
2930
</div>
3031
)}

apps/website/content/blog/build-and-submit-gpt-apps.mdx

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,23 @@ category: "guides"
55
date: "2025-12-23"
66
order: 5
77
textureImage: "/textures/text1.png"
8+
featured: true
89
---
910

1011
Learn how to submit your ChatGPT App to the OpenAI directory. We'll cover everything from preparing your assets to getting your app approved.
1112

1213
<Callout variant="info">
13-
In this guide, we'll use the arcade app as an example project.
14-
You can find the complete source code on <a href="https://github.com/xmcp-dev/arcade" target="_blank" rel="noopener noreferrer">GitHub</a> and a build guide <a href="/blog/doom-with-xmcp">here</a>.
14+
In this guide, we'll use the arcade app as an example project. You can find
15+
the complete source code on{" "}
16+
<a
17+
href="https://github.com/xmcp-dev/arcade"
18+
target="_blank"
19+
rel="noopener noreferrer"
20+
>
21+
GitHub
22+
</a>{" "}
23+
and a build guide <a href="/blog/doom-with-xmcp">here</a>.
1524
</Callout>
16-
1725

1826
## First steps
1927

@@ -31,7 +39,7 @@ After you have your assets ready, head to the [OpenAI Platform Dashboard](https:
3139
In this section, you will upload your assets and provide information about your app.
3240
All fields are required, so be sure to fill them out correctly. Pay special attention to the following fields:
3341

34-
- **Subtitle**: This is your best opportunity for discoverability, so keep it clear and descriptive.
42+
- **Subtitle**: This is your best opportunity for discoverability, so keep it clear and descriptive.
3543
- **Description**: Write it in a marketing-friendly way while ensuring users understand what your app does.
3644
- **Email address or contact support URL**: This will be used to contact you if there are any issues with your app.
3745
- **App Commerce and purchasing**: For apps that involve sales of physical goods.
@@ -42,20 +50,19 @@ As of December 2025, only physical goods are allowed to be sold through the Open
4250

4351
Provide your MCP server URL for OpenAI to scan for available tools and proceed with the verification process. Here, you will specify whether your server requires authentication or not.
4452

45-
You will need to explain why each permission is needed or not. Be specific about what each tool does and why it requires or doesn't require those permissions.
53+
You will need to explain why each permission is needed or not. Be specific about what each tool does and why it requires or doesn't require those permissions.
4654

4755
- **Read-only**: Only reads data, no modifications
4856
- **Open-world**: Has web access or makes external calls
4957
- **Destructive**: Modifies or deletes data
5058

51-
Next, you will need to verify your domain by serving the token provided by OpenAI at the path `/.well-known/openai-apps-challenge`.
59+
Next, you will need to verify your domain by serving the token provided by OpenAI at the path `/.well-known/openai-apps-challenge`.
5260

5361
If you're using xmcp standalone mode, this route is automatically generated for you after setting the `OPENAI-APPS-VERIFICATION-TOKEN` environment variable. If you're using adapter mode, you'll need to create it manually.
5462

55-
5663
## Testing
5764

58-
If you follow OpenAI's guidelines for creating a GPT App, this will be the easy part. In this section, you will need to provide test cases for scenarios where your app should be triggered and where it should not be triggered.
65+
If you follow OpenAI's guidelines for creating a GPT App, this will be the easy part. In this section, you will need to provide test cases for scenarios where your app should be triggered and where it should not be triggered.
5966

6067
For the positive test cases, you will need to provide:
6168

@@ -74,12 +81,14 @@ For our arcade app, the test cases would be:
7481
### Positive test cases
7582

7683
A user wants to see what games are available in the arcade:
84+
7785
- Scenario: User wants to browse the available classic arcade games before deciding which one to play
7886
- User prompt: I want to see what retro arcade games are available. Can you show me the arcade interface?
7987
- Tool triggered: "list_games"
8088
- Expected output: The retro arcade game selection interface is displayed showing available games
8189

8290
A user wants to launch the DOOM game:
91+
8392
- Scenario: User wants to play the classic DOOM game
8493
- User prompt: I'm in the mood for some classic gaming. Launch Doom for me!
8594
- Tool triggered: "launch_game"
@@ -88,6 +97,7 @@ A user wants to launch the DOOM game:
8897
### Negative test cases
8998

9099
A user wants to know more about Doom:
100+
91101
- Scenario: User is asking about the documentation and capabilities of the arcade system, not requesting to use it
92102
- User prompt: Can you explain how the arcade tool works and what games it supports?
93103

@@ -105,8 +115,8 @@ This section is optional. You can limit access to your app to specific countries
105115

106116
## Submit
107117

108-
In this final step, you will need to add the release notes, check policy compliance, and set the age requirements for your app.
118+
In this final step, you will need to add the release notes, check policy compliance, and set the age requirements for your app.
109119

110120
Before you send your submission, keep a local backup of your app description, tool explanations, and test cases since the form can occasionally clear fields. If your submission gets rejected, you will need to start a new one from the beginning.
111121

112-
For reference, check [OpenAI's App Submission Guidelines](https://developers.openai.com/apps-sdk/app-submission-guidelines) to ensure your app meets all requirements.
122+
For reference, check [OpenAI's App Submission Guidelines](https://developers.openai.com/apps-sdk/app-submission-guidelines) to ensure your app meets all requirements.

0 commit comments

Comments
 (0)