• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
project logo

colel

rust-nyc-talk-submissions

https://github.com/colelawrence/rust-nyc-talk-submissions
Public
Like
rust-nyc-talk-submissions
Home
Code
16
.beads
4
.context
4
.github
1
.pi
1
backend
10
docs
3
frontend
3
shared
1
.gitignore
.vtignore
AGENTS.md
BRAND_STYLE_GUIDE.md
README.md
biome.json
deno.json
main.tsx
Environment variables
7
Branches
2
Pull requests
Remixes
1
History
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
docs
/
features
/
concepts
/
COMMUNITY-IDEAS-LAUNCHPAD.md
Code
/
docs
/
features
/
concepts
/
COMMUNITY-IDEAS-LAUNCHPAD.md
Search
…
Viewing readonly version of main branch: v169
View latest version
COMMUNITY-IDEAS-LAUNCHPAD.md

Community Ideas Launchpad

Feature Name: Community Ideas Launchpad
Status: PR-Ready Concept
Author: Generated by deep-community-ideas task
Created: February 2026


Executive Summary

The Community Ideas Launchpad transforms Rust NYC from a passive submission-acceptance model into a vibrant, community-driven content engine. It combines a public ideas board with voting, a lightning talk fast-track program, and automated topic suggestions—creating a flywheel that surfaces high-demand content while lowering the barrier for first-time speakers.


Feature Components

1. Public Ideas Board (/ideas)

A community-visible board where anyone can propose talk topics they'd like to see covered, even if they can't give the talk themselves.

2. Community Voting System

Upvote/downvote mechanism that surfaces high-demand topics and signals speaker readiness.

3. Lightning Talk Fast-Track

5-minute lightning talk slots with simplified requirements—perfect for topic validation and first-time speakers.

4. Topic-of-the-Week Bot

Discord bot that promotes trending topics and nudges potential speakers.


User Journeys

Attendee Journey: "I wish someone would talk about X"

  1. Browse → Visits /ideas page, sees trending topics
  2. Search → Checks if their topic exists; finds similar ideas
  3. Propose → Creates new idea: "How to debug async Rust" with optional context
  4. Engage → Upvotes other ideas they're interested in
  5. Follow → Gets Discord notification when a speaker claims their idea
  6. Attend → Shows up to the talk, already invested in the outcome

Speaker Journey: "I want to give a talk but need validation"

  1. Discover → Browses high-voted ideas on /ideas
  2. Claim → Clicks "I'll give this talk" on a popular idea
  3. Choose format →
    • Lightning (5 min): Instant approval, next available slot
    • Full talk (20-30 min): Standard organizer review
  4. Prepare → Receives Discord channel with original idea context + voter comments
  5. Deliver → Gives talk to audience who already expressed interest
  6. Feedback → Post-talk voting informs future speaking opportunities

Organizer Journey: "Curate content the community actually wants"

  1. Monitor → Dashboard shows trending ideas, claimed topics, upcoming lightning talks
  2. Moderate → Flag/merge duplicate ideas; handle abuse reports
  3. Schedule → Lightning talks auto-schedule; full talks get standard review
  4. Analyze → See conversion funnel: ideas → claims → delivered talks
  5. Nudge → Topic-of-week bot auto-promotes stale high-demand ideas

Technical Design

New Database Schema

-- Ideas table CREATE TABLE talk_ideas_1 ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, description TEXT, proposer_name TEXT, proposer_discord_id TEXT, status TEXT DEFAULT 'open', -- open, claimed, scheduled, delivered, archived claimed_by_speaker TEXT, talk_format TEXT, -- lightning, full created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ); -- Votes table (prevents duplicate voting) CREATE TABLE idea_votes_1 ( id INTEGER PRIMARY KEY AUTOINCREMENT, idea_id INTEGER NOT NULL, voter_fingerprint TEXT NOT NULL, -- hashed IP + user-agent vote_type INTEGER NOT NULL, -- 1 = upvote, -1 = downvote created_at DATETIME DEFAULT CURRENT_TIMESTAMP, UNIQUE(idea_id, voter_fingerprint) ); -- Lightning talk queue CREATE TABLE lightning_queue_1 ( id INTEGER PRIMARY KEY AUTOINCREMENT, idea_id INTEGER, -- NULL if direct submission submission_id INTEGER, -- links to talk_submissions slot_date DATE, slot_order INTEGER, status TEXT DEFAULT 'pending', -- pending, confirmed, delivered, cancelled created_at DATETIME DEFAULT CURRENT_TIMESTAMP );

New API Endpoints

EndpointMethodDescription
/api/ideasGETList ideas with vote counts, sorted by trending
/api/ideasPOSTSubmit new idea
/api/ideas/:id/votePOSTUpvote/downvote an idea
/api/ideas/:id/claimPOSTClaim an idea as a speaker
/api/lightning/queueGETView upcoming lightning talk slots
/api/lightning/submitPOSTSubmit lightning talk (direct or from idea)

Frontend Components

New files to create:

  • frontend/components/IdeasBoard.tsx — Main ideas list with voting
  • frontend/components/IdeaCard.tsx — Individual idea with vote buttons
  • frontend/components/IdeaSubmitForm.tsx — New idea form (simpler than talk form)
  • frontend/components/LightningTrack.tsx — Lightning talk queue view
  • frontend/components/ClaimModal.tsx — Modal for claiming an idea

Modifications to existing files:

  • frontend/components/App.tsx (lines 14-95): Add tab navigation between "Submit Talk" and "Ideas Board"
  • shared/types.ts: Add TalkIdea, IdeaVote, LightningSlot interfaces

Discord Bot Commands

/idea suggest <title> [description]  — Propose a topic
/idea list [top|new|claimed]         — Browse ideas
/idea claim <id> [lightning|full]    — Claim an idea
/topic-of-week                       — Show this week's promoted topic

Topic-of-the-Week Bot Logic

Runs as a cron job (Sundays at 10am):

  1. Query ideas with status = 'open' and vote_count >= 5
  2. Exclude ideas promoted in last 30 days
  3. Select highest-voted unclaimed idea
  4. Post to #announcements with @everyone:

    🎯 Topic of the Week: "Debugging async Rust"
    12 community members want to learn about this!
    Ready to share your knowledge? /idea claim 42 lightning


Anti-Abuse Considerations

Voting Manipulation

  • Rate limiting: Max 10 votes per IP per hour
  • Fingerprinting: Hash of IP + user-agent prevents simple sock-puppeting
  • Decay algorithm: Old votes contribute less to ranking
  • Moderator tools: Flag suspicious voting patterns

Spam Ideas

  • Honeypot field: Hidden form field catches bots
  • Minimum description length: 20 characters
  • Duplicate detection: Fuzzy match against existing titles
  • Report button: Community can flag inappropriate content

Speaker Gaming

  • Claim cooldown: Can only claim 1 idea per week
  • Delivery requirement: Must deliver claimed lightning talk within 30 days or idea reopens
  • No-show tracking: 2 no-shows = temporary ban from claiming

Discord Integration Safety

  • Organizer approval: Full talks still require manual approval
  • Rate limits: Max 3 Discord notifications per hour per user
  • Mute option: Users can opt out of bot mentions

Success Metrics

Primary KPIs

MetricDefinitionTarget (6 months)
Ideas SubmittedNew ideas per month15+
Claim Rate% of ideas that get claimed40%
Lightning Delivery Rate% of claimed lightnings delivered80%
Full Talk ConversionLightning speakers → full talks25%

Secondary Metrics

  • Vote engagement: Average votes per idea
  • Time to claim: Days from idea creation to claim
  • Repeat speakers: % of lightning speakers who return
  • Topic diversity: Unique topic categories per quarter

Health Indicators (anti-abuse)

  • Spam rate: < 5% of submissions flagged
  • Vote fraud rate: < 1% of votes from suspicious patterns
  • No-show rate: < 10% of scheduled lightnings

One-Page Mock Press Release Outline

FOR IMMEDIATE RELEASE

Rust NYC Launches "Community Ideas Launchpad" — Let the Community Choose What They Want to Learn

New York, NY — February 2026

The Hook: Rust NYC, New York's premier Rust programming meetup, today announced the Community Ideas Launchpad, a new platform that lets attendees vote on topics they want covered—and gives first-time speakers a low-stakes way to debut.

The Problem: Great speakers don't know what audiences want. Interested attendees don't know how to influence content. First-time speakers face a high bar to present.

The Solution: A public ideas board where anyone can propose topics. Community voting surfaces demand. Lightning Talk Fast-Track (5-minute talks) lets speakers validate ideas with minimal prep. Topic-of-the-Week bot ensures popular ideas find speakers.

Key Quote (Organizer): "We're flipping the model. Instead of waiting for speakers to propose what they want to talk about, we're empowering the community to request what they want to learn. The result? Better talks, fuller rooms, and more first-time speakers finding their voice."

Key Quote (Community Member): "I've always wanted to learn about async debugging but never saw a talk on it. Now I can propose it, upvote it, and actually influence the meetup agenda."

How It Works:

  1. Propose a topic at rustnyc.com/ideas
  2. Community upvotes topics they want
  3. Speakers claim popular ideas
  4. Choose lightning (5 min) or full talk (20-30 min)
  5. Deliver to an audience that already wants to learn

Call to Action: Visit rustnyc.com/ideas to propose your first topic or claim one that's been waiting for you.

Boilerplate: Rust NYC is New York City's community meetup for Rust programming enthusiasts. We host monthly events featuring talks, workshops, and networking. Join our Discord at discord.gg/rustnyc.


Implementation Phases

Phase 1: Ideas Board MVP (2 weeks)

  • Ideas table + basic CRUD API
  • Simple voting with fingerprint dedup
  • /ideas page with sorted list
  • Basic claim flow → creates Discord channel

Phase 2: Lightning Fast-Track (2 weeks)

  • Lightning queue table + scheduling
  • Simplified submission for 5-min talks
  • Auto-scheduling to next available meetup
  • Reminder notifications

Phase 3: Bot Integration (1 week)

  • Discord slash commands for ideas
  • Topic-of-the-week cron job
  • Organizer moderation commands

Phase 4: Analytics & Polish (1 week)

  • Organizer dashboard
  • Conversion funnel metrics
  • Anti-abuse monitoring

Remaining Work

For orchestrator follow-up:

  1. Backend task: Create backend/routes/ideas.ts with CRUD + voting endpoints
  2. Frontend task: Create IdeasBoard.tsx and IdeaCard.tsx components
  3. Schema task: Add migrations to backend/index.ts for new tables
  4. Types task: Extend shared/types.ts with new interfaces
  5. Discord task: Implement slash commands in Discord bot integration
  6. Cron task: Create backend/cron/topic-of-week.ts for weekly bot posts

References

  • Current submission flow: frontend/components/App.tsx (lines 1-95)
  • Existing form pattern: frontend/components/TalkSubmissionForm.tsx
  • Types to extend: shared/types.ts
  • Backend structure: backend/index.ts
FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2026 Val Town, Inc.