Press any key to skip

My Innovation

Systems we designed, built and shipped

Django · React · PostgreSQL · Docker  ·  Built in Algeria

Credits 02 Insert coin to play Both cabinets playable

Walk the floor

Walk up · use

Arrows or WASD to walk · E to use a cabinet

Select Cabinet

02 machines

Now building

In the workshop

Cabinets currently on the workbench. Each screen is a recording of the real build in motion. Not a mockup, not a concept board.

How we build

Insert coin

The workshop

We build web platforms that reach production, not demos. Every cabinet on this floor is a system somebody's business actually runs on: taking orders, moving stock, handling money.

The shape is consistent: a Django and DRF core with a PostgreSQL schema designed for the domain, a React front end, Celery for the work that shouldn't block a request, and Docker underneath so the thing that runs on a laptop is the thing that runs on the server. Then TLS, nightly backups and role-based access, because shipping is where the job actually starts.

On the board
Storefronts live in production2
Wilayas served with courier pricing58
Deploys behind TLS + nightly backups100%
Roles enforced server-sideAlways

How to play

Instruction card
1

Insert brief

We start from how the business actually runs (who takes the order, who packs it, who gets paid) rather than from a feature list.

2

Build the core

Django models and a PostgreSQL schema shaped to that reality first. Get the data right and the screens follow.

3

Ship it live

Docker, nginx, TLS, a real domain. Not a staging link, but the thing customers type into a phone.

4

Hand over the keys

An admin where the owner changes prices, stock, delivery rates and staff access without calling us.

What we build

Scope
Storefronts that take ordersCatalogue, cart, checkout and the delivery maths behind it. Cash on delivery, promo codes, stock that decrements when it should.
Back offices staff can useNot the framework's default admin. Screens built around the job: confirm an order, adjust stock, change a price, add a member of staff.
Roles and permissionsA confirmation agent sees the order queue and nothing else. Enforced server-side, so hiding a button isn't the security model.
Integrations that matter locallyWhatsApp order routing, courier tariffs per wilaya, PDF quotes generated in the browser, transactional email with SPF and DKIM.
Deployment, properlyDocker on a VPS, nginx, TLS that renews itself, nightly backups verified by restoring them, and zero-downtime redeploys.
Taking over existing codeReading someone else's Django project, finding what's actually broken, and shipping it, rather than insisting on a rewrite.

Straight answers

Before you ask

How long?

Timeline

A storefront with checkout, delivery pricing and a working admin is weeks, not months. The unknown is never the code. It's how many decisions about your own business are still open when we start.

Can I change things myself?

Ownership

Prices, stock, products, photos, delivery rates per wilaya, staff accounts and the text on your contact page are all editable from the admin. No developer, no redeploy. If you have to call us to change a price, we built it wrong.

Who owns the code?

Handover

You do. It runs on your server, your domain, your database, with the credentials in your hands. Nothing is locked to a platform you'd have to keep paying us for.

What if it breaks at 2am?

Operations

The database and uploads are backed up nightly and the restore is tested, not assumed. Containers restart on their own, certificates renew on their own, and a bad deploy can be rolled back to the previous image.

Boss fights

Cleared

The 58-Wilaya Courier

Delivery pricing · cleared

Algeria has 58 wilayas and every one has a different courier rate, twice over, home delivery and stop desk. Hard-coding a flat fee quietly loses money on the far ones. Beaten by per-wilaya tariffs the owner edits in the admin, and a rule that an unpriced destination is refused at checkout rather than shipped at a loss.

The Phantom Price

Bundled data · cleared

A storefront that ships a fallback catalogue renders those prices for a beat before the real ones load. Customers saw a figure the shop would never honour. Beaten by deleting the bundled catalogue outright. The database is the only source of a price, and the page waits rather than lying.

The Stale Address

Zero-downtime deploys · cleared

nginx resolves an upstream hostname once, at boot. Redeploy the API and it gets a new container address, so the site loads while every order, cart and product call quietly returns 502. Beaten by resolving service names per request through Docker's DNS, verified by moving the API to a different address mid-flight and watching traffic follow.

The Backup That Wasn't

Data safety · cleared

The nastiest kind of bug: a scheduled backup that installs cleanly, reports nothing, and writes an empty file. You find out on the day you need it. Beaten by restoring from the dump as part of setting it up, counting the tables and the media files, not trusting the exit code.

Power-ups

Equipped
Django + DRFThe core. Business rules live server-side, where a client can't edit them.
ReactThe storefront and the admin: one language, two very different jobs.
PostgreSQLSchema shaped to the domain. Money in decimals, never floats.
Celery + RedisConfirmations and image work off the request, so checkout stays fast.
DockerThe stack that runs on a laptop is the stack that runs on the server.
nginx + TLSOne origin, real certificates, renewed on their own.
Role-based accessStaff see exactly their job. Enforced on the server, not hidden in the UI.
Nightly backupsDatabase and uploads, verified restorable, not just scheduled.

Your scores

This browser

Bonus stage

Free play

Blight Buster

Free play
B/B
Reaction · grid

The blight spreads to a neighbouring cell every tick. Clear the infected ones before half the field is lost. A wrong tap costs a point, so sweeping the board doesn't work.

CanvasFixed timestepNo engine

Keypad

Free play
[ ]
Memory · sequence

Watch the entry code, then repeat it. It grows by one key each round and a single wrong press locks you out. Keys 1 to 4, arrows, or tap.

CanvaslocalStorageTouch + keys

Ship It

Free play
/ /
Paddle · physics

Clear the backlog before the build breaks. The ball gains speed on every paddle hit, so a long rally gets harder rather than safer, and where it lands on the paddle is how you steer.

CanvasCollision3 lives

Uptime

Free play
>_
Snake · endurance

Every request you serve makes the queue behind you longer, and the service speeds up as it grows. Hit a wall or your own tail and you're down.

CanvasGrid movementScales with score

Continue?

9

There's a free cabinet on this floor. Tell us what your business actually does all day and we'll build the system that runs it.

▸ Insert coin