diff --git a/src/content/posts/opinion/how-to-get-noticed.mdx b/src/content/posts/opinion/how-to-get-noticed.mdx
new file mode 100644
index 0000000..efb2181
--- /dev/null
+++ b/src/content/posts/opinion/how-to-get-noticed.mdx
@@ -0,0 +1,57 @@
+---
+title: How to Get HQ to Notice Your Idea
+date: '2026-04-21'
+author: '@eps'
+---
+
+HQ receives a lot of good ideas about things we should do. In fact, we receive more good ideas than we can really handle. This is a good problem to have. We’re lucky to have a community that cares, rather than a community that has given up. But this surplus of ideas leads to rejection, which leads to frustration.
+
+I’ve put together a couple of observations about which advice gets implemented. I hope it helps.
+
+**I. Bring a Working Prototype**
+When I started here, I said yes to helping out with almost every idea people brought to me. But I found that most of those ideas never got finished, even when I stepped in to try and help finish them. I have talked to other HQ staff, and they have had similar experiences.
+
+Now, when I ask myself how likely it is that a cool idea will be implemented, I start with the baseline observation that most cool ideas do not get implemented. This is not cynicism; this is me being frugal with your money. Hack Clubbers often ask me to fund things. I don’t have that much money at my disposal. If I said yes to every promising idea, I would go broke fast. My time is also your money, so I try to be frugal with that, too.
+
+I’ve stopped funding ideas and switched to funding demonstrated achievements. I tell people, “Do it for free at a small scale to show me that it works. Then I will fund you to scale up.”
+
+My current opinion (which I reserve the right to change later) is that it’s less about the idea and more about the people. Are you the kind of person who will get it done? I think this comes down to a few factors:
+- How much time do you have?
+- Is the scope of your idea realistic for that time?
+- When you fail, will you give up, or keep trying?
+
+I can’t tell these things about you by talking with you. So the way I identify people who can get it done is by seeing who can bring me a working prototype.
+
+By the way, “people who can get things done” are an open group that anybody can join. I wasn’t totally hopeless before Hack Club or they wouldn’t have hired me. But I have learned more about getting things done in four months here than I have in years working at other places. It’s actually quite simple: give yourself permission to fail. Instead of trying to think your way to the perfect idea, just try things to find out what works. And when you fail, don’t give up. Keep trying. There is other advice, but just these two things will get you very far.
+
+**II. Think about Opportunity Cost**
+Before Hack Club, I worked in schools. I heard a lot of opinions about what teenagers needed to learn. Whenever someone told me that schools should teach something, I always answered with: “So what would you cut?”
+
+You are really busy. Saying that teenagers should learn more about X requires that you learn less about Y. There’s no getting away from it. The hard truth for anyone designing a curriculum is that there is more stuff worth knowing than there is time to learn it.
+
+We are in the same situation at HQ. We have our core job responsibilities. Then we have requests from other people. Every day I get 20-40 messages, which is on the low side. Higher-profile staff members get hundreds of DMs and mentions every day.
+
+In short, we all get more requests and suggestions than we can act on. Saying yes to your idea means saying no to someone else’s idea. This isn’t a criticism of any idea. It’s just a hard truth.
+
+Saying yes to your idea means saying no to something else. This is really important. It is the #1 constraint on our ability to say yes to you, and it can’t be fixed.
+
+It’s brutal because it means even if your idea is objectively a good idea and would make Hack Club better, that’s still not enough to guarantee one of us will say yes to you.
+
+We aren’t just waiting for good ideas to implement. We are picking which good ideas to implement. Sometimes I want to tell people “I’m sorry, but I’m too busy”. It sounds rude because it sounds like I don’t care. On the contrary, “I’m busy” means “I care so much about what I’m already doing that I can’t stop to do this.”
+
+**III. But Don’t Be Scared to Ask**
+This doesn’t mean you should stop suggesting ideas! Please keep suggesting ideas! Our best work comes from you all. Without hearing and choosing from your ideas, Hack Club wouldn’t be the special place it is.
+
+In particular, I have noticed that some people go through life trying to be as small as possible. “Um, excuse me, but if it’s not too much trouble, my house is on fire, and I was wondering if you could put it out? Or maybe just lend me some water and I’ll do it? What am I saying, I’m sure I can get water somewhere else, and I know how busy you are. I’m sorry to have wasted your time.”
+
+Other people go too far in the opposite direction, and make really bold claims on your time, asking you to do things they could do themselves. I don’t see much of this at Hack Club (thanks guys!) but I used to see it all the time when I worked in schools.
+
+Members of these two groups generally believe that they are in the opposite group.
+
+I worry that when people read this piece, the ones who want too much will ignore it, and the ones who don’t want enough will assume it is about them. Actually, it isn’t about anybody. My point is not “ask for less”. My point is “get really good at asking”. Here’s how:
+
+- Bring us a working prototype, not just an idea.
+- Have the community do as much of the work as possible. Ask HQ staff to do the parts that no one else can do.
+- Before you suggest an idea, try to estimate how much it will help Hack Clubbers, compared to the things that HQ staff are already doing. If the answer is that will help less, try and change it to deliver more value.
+
+I hope this post doesn’t sound like I’m complaining, criticizing, or making excuses. My goal is simply to be honest about the constraints that HQ works under, so that you have the best chance possible of getting your idea noticed within those constraints. We are here to serve you, and without your ideas, Hack Club would be lame. I’m not writing this to discourage suggestions. I’m writing it to help your suggestions succeed. We need you.
diff --git a/src/content/posts/slack-survey.mdx b/src/content/posts/slack-survey.mdx
deleted file mode 100644
index 55927a0..0000000
--- a/src/content/posts/slack-survey.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-date: '2026-03-26 10:57:00'
-author: "@eps"
-category: news
-title: New Slack Census
-excerpt: "Next week, the Slack will conduct the first survey for highly active users. The Census will run monthly, and feature a mix of recurring questions and one-off investigations. The Census is going to a random sample of the most active users to avoid survey fatigue in the future. This time, that means anyone who was active for at least 20 out of the past 30 days at time of sample. Subjects will receive a DM from @Hack Club Census. Prizes will be given."
----
-import SlackMention from "../../components/SlackMention.astro";
-
-Next week, the Slack will conduct the first survey for highly active users. The Census will run monthly, and feature a mix of recurring questions and one-off investigations.
-
-The Census is going to a random sample of the most active users to avoid survey fatigue in the future. This time, that means anyone who was active for at least 20 out of the past 30 days at time of sample. Subjects will receive a DM from @Hack Club Census.
-
-This year we've conducted a monthly survey of newly-joined Slack users covering their NPS and written feedback on the Slack. New users naturally differ from the most active users, so surveying a distinct population will reveal different information. New users' experience is helpful to understand the Slack's retention rate, which is a decisive factor in what happens to the Slack.
-
-The questions on the census are as follows:
-
-1. Have you recommended the Slack to a friend?
-2. Why or why not?
-3. Why do you spend time on the Slack?;=-0
-4. How much of your time do you spend in public vs private channels?
-5. How would you rate the Slack's public channels?
-6. How would you rate the Slack's private channels?
-7. Do you feel like you are growing into the person you want to be by spending time on the Slack?
-8. What is one question you wish I had asked you? What is the answer to that question?
-
-Prizes will be raffled off to respondents. This month's prizes include:
-- A Raspberry Pi Zero 2W
-- Setting the Slack's workspace icon (subject to 's approval)
-- Setting a custom Slackbot response. If you don't know what these are, try typing "vim" in the Slack. See how many you can find! (subject to 's approval)
\ No newline at end of file
diff --git a/src/data/frontpage.json b/src/data/frontpage.json
index 0c0726e..8f369e4 100644
--- a/src/data/frontpage.json
+++ b/src/data/frontpage.json
@@ -1,4 +1,3 @@
{
- "headline": ["news/new-hq"],
- "opinion": ["opinion/better-goodbye", "opinion/3-months-at-hack-club", "opinion/tragedy-anticommons"]
+ "headline": ["news/new-hq"]
}
diff --git a/src/lib/content.ts b/src/lib/content.ts
index d9b461f..6dc28a5 100644
--- a/src/lib/content.ts
+++ b/src/lib/content.ts
@@ -39,7 +39,6 @@ export type Acknowledgement = {
type FrontpageData = {
headline?: string[];
- opinion?: string[];
};
function normalizeWhitespace(input: string): string {
diff --git a/src/pages/index.astro b/src/pages/index.astro
index c3b8b1f..d70ee09 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -18,21 +18,7 @@ const headlineSlug = frontpage.headline?.[0];
const headline = posts.find((post) => post.slug === headlineSlug);
const headlineExcerpts = headline?.paragraphs.slice(0, headline?.leadingImage ? 1 : 2) ?? [];
-const allOpinion = posts.filter((post) => post.category === "opinion");
-const opinionSlugs = frontpage.opinion ?? [];
-const displayOpinion = [];
-for (const slug of opinionSlugs) {
- const matched = allOpinion.find((post) => post.slug === slug);
- if (matched && displayOpinion.length < 3) {
- displayOpinion.push(matched);
- }
-}
-for (const post of allOpinion) {
- if (displayOpinion.length >= 3) break;
- if (!displayOpinion.some((candidate) => candidate.slug === post.slug)) {
- displayOpinion.push(post);
- }
-}
+const displayOpinion = posts.filter((post) => post.category === "opinion").slice(0, 3);
const allNews = posts.filter((post) => post.category === "news");
const displayNews = allNews.filter((post) => post.slug !== headlineSlug).slice(0, 8);