The constraint that shaped everything
ideyCDN was designed to run on an existing Namecheap Stellar Plus shared hosting account. No dedicated server, no VPS, no containerised infrastructure. This was a deliberate constraint, not a compromise: affordable hosting is the only realistic option for the majority of African developers building their first products.
The question was: what is the best CDN and static hosting product you can build within those constraints? The answer turned out to be more capable than expected.
Four-pillar architecture
1. File hosting
Raw file upload and retrieval with direct URL access. Supports images, fonts, scripts, stylesheets, documents, and binary assets. Files are stored in a two-level sharded directory structure to avoid filesystem performance degradation at scale:
/uploads/
ab/
cd/
abcdef1234567890.webp ← shard by first 4 chars of UUID
ef/
01/
ef012345abcdef.js
This ensures directory listing never exceeds a manageable size even at hundreds of thousands of files, which is the threshold where many filesystems and hosting panels begin to slow down.
2. Asset pipeline
Uploaded images pass through a Sharp-based processing pipeline that generates multiple optimised variants automatically: WebP at three sizes (original, medium at 800px, thumbnail at 400px), with quality targeting and metadata stripping. The pipeline runs asynchronously — the API returns the original URL immediately and the processed variants become available within seconds.
3. Frontend project hosting
Static site deploys via a ZIP upload or a CLI push command. The deploy system unpacks the archive into an isolated project directory, validates the structure (must have an index.html), and registers a project subdomain. Supports custom domains via CNAME pointing. Each deploy is versioned, with one-click rollback to any previous deploy.
4. Developer API
A RESTful API with API key authentication covering all four pillars. Keys are scoped (read-only, read-write, full access) and rate-limited per key. The API powers both the dashboard and the CLI tool.
Running NestJS on shared hosting
Getting a Node.js NestJS application to run stably on cPanel with Phusion Passenger required solving several non-obvious problems. Passenger expects a specific entry point signature. Long-running workers for the asset pipeline needed to be implemented as recurring cron jobs rather than background threads to avoid Passenger's idle process termination. The full configuration is documented in the repo for others who need to do the same.
Status
ideyCDN is in production, serving assets for several projects including this portfolio. The file hosting and asset pipeline are stable. Frontend project hosting is in beta. The CLI tool is available as an npm package.