sdk-name/
src/ β Source modules (each <200 lines)
core.js β Event bus, utilities
auth.js β Auth module
share.js β Share module
api.js β Fetch wrapper
ui.js β UI components (buttons, etc.)
sdk-name.js β Build output (merged single file for consumers)
server-sdk.js β Backend SDK (keep as single file for easy copy)
build.js β Simple merge script (src/ β sdk-name.js)
docs.html β API documentation page
test/
test.html β Local test page
CHANGELOG.md β Version change log
Dev time : work in src/ small modules, AI reads only what it needs
Publish time : build.js merges src/ into single file, consumer import unchanged
Backend SDK : keep as single file (easy to copy into each project)
CHANGELOG.md : track every change, consumers know what to upgrade
var fs = require ( 'fs' ) ;
var path = require ( 'path' ) ;
var files = [ 'core.js' , 'auth.js' , 'share.js' , 'api.js' , 'ui.js' ] ;
var header = '/**\n * SDK Name v' + version + '\n * Built: ' + new Date ( ) . toISOString ( ) + '\n */\n' ;
var output = header + '(function() {\n' ;
files . forEach ( function ( f ) {
output += '\n// === ' + f + ' ===\n' ;
output += fs . readFileSync ( path . join ( __dirname , 'src' , f ) , 'utf8' ) ;
} ) ;
output += '\n})();\n' ;
fs . writeFileSync ( path . join ( __dirname , 'sdk-name.js' ) , output ) ;
console . log ( 'Built sdk-name.js' ) ;
When to Use SDK Architecture
Multiple projects consume the same module
Frontend: single <script> tag import required
Backend: single require() import required
Need version tracking across consumers