Project ideas from Hacker News discussions.

Smolts: A pedagogical IDE for a teaching language

📝 Discussion Summary (Click to expand)
  • Investment in custom, human‑centered teaching tools – Several commenters praise the effort to build bespoke IDEs and debuggers that focus on the learner experience.

    “two years of polishing a teaching ide is dedication. what made you build your own instead of leaning on somethi” — quietraster
    “The go‑back debugger is great, I am providing this in my educational Python IDE here: https://primopy.com” — xenonite
    “If only our interactions with non‑teaching languages_ were anything like this … or humane, in the lineage of Bret Victor, etc.” — mccoyb

  • Toy vs. real‑world languages for education – A recurring debate questions whether teaching‑only languages are justified when languages like Python already cover the needed concepts while remaining useful beyond the classroom.

    “I will never understand the point of teaching languages that aren't actually used. To me it just seems like its intended to be easier for the teacher rather than being beneficial for the student.” — gremlinunderway
    “Python is already a super simple language and has enough functional plus OOP orientation that it can be used to showcase every concept and still be useful for the student.” — gremlinunderway

  • Nostalgia and appreciation for historic educational projects – Commenters reference past teaching languages and notable PL work, showing a sentimental and respectful view of earlier efforts.

    “Who remembers turning and object oriented turing from the university of Waterloo?” — gdevenyi
    “Also shout out @tonyg for Syndicate! I keep coming back to it -- a beautiful piece of PL work.” — mccoyb


🚀 Project Ideas

EduPyGo: Educational Python IDE with Integrated Time-Travel Debugger and Visual Concept Annotations

Summary

  • A Python‑focused IDE that bundles a reversible (go‑back/forward) debugger with live visual annotations of variables, control flow, and object state.
  • Core value proposition: gives students the humane, Brett‑Victor‑style feedback of a teaching IDE while they work in a real, industry‑relevant language.

Details

Key Value
Target Audience Introductory CS instructors and students learning Python (high school to early university).
Core Feature Time‑travel debugging (step backward/forward) + inline visualizations (variable watches, call‑stack diagrams, object‑state charts) that update as code runs.
Tech Stack React + Monaco Editor (frontend), Electron wrapper for desktop, Python language server (pyright) + custom debug adapter using debugpy with snapshotting for reversibility.
Difficulty Medium
Monetization Revenue-ready: Classroom SaaS license ($5/student/month) with free tier for individual learners.

Notes

  • Directly addresses the praise for the “go-back debugger” in primopy.com (“The go-back debugger is great…”) and extends it to a full teaching IDE.
  • Satisfies the desire for “humane” interactions with non‑teaching languages (see mccoyb’s comment) by keeping Python real‑world usable while offering Bret Victor‑style feedback.
  • Provides a concrete alternative to building a teaching IDE from scratch, responding to the comment about “two years of polishing a teaching ide is dedication”.

SyndicatePlayground: Interactive Visual Programming Environment for Teaching PL Concepts

Summary

  • A web‑based playground where learners construct dataflow/reactive programs via draggable nodes that generate real Syndicate code and instantly visualize execution.
  • Core value proposition: bridges the gap between abstract PL theory and tangible, immediate feedback using a genuine language (Syndicate) and Bret Victor‑inspired live visualizations.

Details

Key Value
Target Audience PL educators, upper‑level undergrads, and self‑learners studying functional/reactive programming, event‑driven systems.
Core Feature Node‑based visual editor ↔︎ Syndicate source code synchronization; live runtime visualization of signals, reactions, and state changes.
Tech Stack React + Redux (UI), Fabric.js (canvas), Syndicate runtime compiled to WASM via wasm-pack, Node.js service for code execution and state streaming.
Difficulty High
- Monetization Hobby (open‑source project; potential future sponsorships or workshop fees).

Notes

  • Realizes mccoyb’s wish for interactions with “non‑teaching languages” that are “humane, in the lineage of Bret Victor”.
  • Builds on the admiration for Syndicate (“shout out @tonyg for Syndicate! I keep coming back to it”) by giving learners a tactile way to write and see it execute.
  • Encourages discussion on visual PL teaching methods, likely to spark HN threads about innovative pedagogy.

LangBridge: Transpiler Layer for Educational Pseudocode to Real Languages

Summary

  • A lightweight transpiler that lets instructors define a simple educational syntax (e.g., Turing‑style or OOP Turing) and automatically converts it to executable Python or JavaScript, mapping errors back to the original source.
  • Core value proposition: eliminates the “pointless” teaching‑language problem by letting students learn concepts in a familiar pedagogical notation while actually running real code.

Details

Key Value
Target Audience CS instructors who use custom teaching languages (Turing, OOP Turing, etc.) and students frustrated by “languages that aren’t actually used”.
Core Feature Configurable grammar (ANTLR) → target language transpiler (Python/JS) with source‑map error reporting; available as a VS Code extension and online playground.
Tech Stack ANTLR4 for grammar definition, TypeScript transpiler engine, VS Code Extension API, Monaco Editor for web playground.
- Difficulty Medium
Monetization Hobby (free tool; possible paid premium features like advanced visualizations or LMS integration).

Notes

  • Directly tackles gremlinunderway’s complaint: “I will never understand the point of teaching languages that aren’t actually used…”.
  • Provides a practical path forward for educators who want to keep their own teaching syntax (as hinted by the comment about building a teaching IDE) without sacrificing real‑world usability.
  • Enables richer classroom discussions because students can immediately see how their high‑level constructs map to real‑world code, encouraging deeper learning.

Read Later