My First Week of Vibecoding
20 hours ago
- #vibecoding
- #TypeLex
- #ATProto
- The author released TypeLex, a project for creating a proper IDL language for writing ATProto lexicons.
- TypeLex is designed to compile to ATProto lexicon definitions (JSON) and express the entirety of lexicon, disallowing anything invalid in lexicon.
- The project was inspired by TypeSpec, a language by Microsoft for schemas, which the author found pleasant to work with.
- The author used Claude AI to assist in the development, following a process called 'vibecoding' where the AI helps in coding tasks.
- Initial challenges included setting up a proper test environment and ensuring tests actually ran the emitter, not just superficial checks.
- The development process involved iterating on the design to make the TypeSpec to Lexicon mapping idiomatic and convenient.
- A significant breakthrough was realizing that references between lexicons could be handled more naturally by leveraging TypeSpec's type system rather than string decorators.
- The author emphasized the importance of testing, aiming to cover all Bluesky and built-in AT lexicons from the ATProto repo.
- After several phases of development and refactoring, the project reached a point where it could generate all lexicons from the ATProto repo and additional ones from other repos.
- The author created a website and playground for TypeLex, allowing users to input TypeLex code and see the resulting JSON.
- The entire project, from zero to shipping, took a weekend, showcasing the efficiency of combining human direction with AI assistance.
- The author reflects on the experience, noting the ability to do in minutes what used to take days, while acknowledging the limitations and learning curve of working with AI.