Build a Small JavaScript Library with ES Module Exports
Putting C3 together
You'll design a single inline module that demonstrates the export shape a real library ships:
- A default export β the main thing the library is about.
- A few named exports β secondary utilities.
- No side effects β nothing runs at import time; just declarations.
Then "consume" the library in the same module by simulating the import + usage flow.
Library design tip
When you ship a library, every named export is a commitment β once published, removing or renaming it is a breaking change. Default exports are easier to evolve (you control the importer's local name). Most libraries land on:
- Default = the main entry point.
- Named = a curated 3-10 utilities.
- Anything else stays internal.
The capstone
Build a tiny "format" library: default export is format (takes a Date, returns ISO string); named exports are formatDate (just YYYY-MM-DD) and formatTime (just HH:MM). Then consume all three and log them.
Sign up to start coding
Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β card required, cancel anytime.
Sign up β free trial βFirst 10 lessons in each track are free. No card needed for those.