devtools

ideyCDN

A developer-focused static asset hosting SaaS built for African developers — two-level sharded file storage, an asset pipeline, frontend project hosting, and a clean developer API. Runs on shared hosting infrastructure.

Primary stack
NestJS
Fastify · Phusion Passenger · cPanel
Category
Devtools
Status
Active
Tags
devtools
cdn · infrastructure

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.

STACK
NestJS
Fastify
Phusion Passenger
cPanel
Node.js
Sharp
Apache
Interested in this project?

Let's talk.