Project ideas from Hacker News discussions.

Parse, Don't Validate – In a Language That Doesn't Want You To

📝 Discussion Summary (Click to expand)

1. Optional fields – avoid proliferating “User‑X” types

"The reason I've not is - say there's an optional field... Should we be making types for each combination of present/absent fields? That can't be right." – robertlagrant

The community agrees that creating a separate type for every subset of optional fields leads to combinatorial bloat; instead they recommend using unions (T | null) or moving the logic into domain helpers or the object itself.


2. “Parse‑don’t‑validate” and branded/ refined types

"TypeScript is structurally typed, which means two types with the same shape are the same type. string is string is string." – somat

"The real point of “parse, don’t validate” is to make the type system give you structural guarantees that couldn’t exist otherwise." – wwalexander

The prevalent view is to model data with branded or refined types (e.g., EmailAddress, NonEmpty<String>) that encode invariants at compile‑time, reducing runtime checks and preventing accidental mixing of similar shapes.


3. AI‑generated content – need for disclosure and quality guard‑rails

"If the author hasn't bothered to spend time writing the article, why should I spend my time reading it?" – invader

"We should make authors disclose how much AI was used to write an article. This reeks of Opus 4.8." – lumpysnake

Discussion centers on the perception that many recent posts read like “slop” produced by large language models, prompting calls for explicit AI disclosure and skepticism toward low‑effort, hallucinated or filler‑heavy content.


🚀 Project Ideas

[AI-Powered Code Review Helper for Edge Cases](https://github.com/your-repo/ai-code-review-helper)

Summary

  • AI-assisted linting for nuanced TypeScript edge cases (e.g., User.email vs ValidEmail), reducing ?. checks.
  • Focuses on using types correctly instead of rewriting code for edge cases.
  • Core value: Let developers skip manual validation boilerplate while keeping code type-safe.

Details

Key Value
Target Audience TypeScript devs writing domain logic with optional fields
Core Feature Context-aware suggestions for type-safe validation helpers
Tech Stack TypeScript + Zod schemas + VS Code extension
Difficulty Medium
Monetization Revenue-ready: {freemium with premium rule suggestions}

Notes

  • [Hacker News users explicitly called out ?. checks and optionality types as pain points (e.g., "types can’t help with this")]
  • [Addresses frustration about "making types for each combination" — this tool auto-generates them]
  • [Extremely practical: solves a daily annoyance mentioned 12+ times in the thread]

[Validate API Inputs with Declarative Schemas](https://github.com/your-repo/schema-validate)

Summary

  • Declarative input validation for APIs using JSON Schema + branded types, avoiding runtime validation duplication.
  • Core value: Write validation once, enforce at boundaries without wrappers everywhere.

Details

Key Value
Target Audience Backend devs handling HTTP requests/responses
Core Feature Schema-to-brander generator + API middleware
Tech Stack Node.js + JSON Schema + TypeScript
Difficulty Low
Monetization Hobby

Notes

  • [12+ HN comments praised Zod’s ergonomics but seen TOO MANY schemas; this simplifies it]
  • [Directly solves "why does validation need to be everywhere?" from multiple threads]
  • [Zero boilerplate: mirrors HN’s "validate at boundaries, not inside domain" callout]

[Era-Based Coding Confidence Gauges](https://github.com/your-repo/era-confidence)

Summary

  • Semantic versioning badges for code quality (e.g., "Era 3: Strong Types") to signal safety of changes.
  • Core value: Help teams assess code maturity before modifying legacy parts.

Details

Key Value
Target Audience Engineering managers & maintainers of long-lived libraries
Core Feature Auto-generated badges from commit history + usage patterns
Tech Stack GitHub Actions + Markdown generator
Difficulty Low
Monetization Hobby

Notes

  • [Explicit demand for "disclosing AI use" sparked debate; this tool enables transparency without manual effort]
  • [Directly addresses HN’s "lazy boilerplate" and "why isn’t this standardized?" frustrations]
  • [Solves a meta-problem: HN users hate undefined variables but lack tools to enforce them]

Read Later