Capstone 16 · Independent

The Rebuild

Pick a real tool you use and rebuild its core. A URL shortener with analytics. A paste service with syntax highlighting and expiry. A feed reader. A form builder. A markdown editor with live preview and export. A scheduling link tool. The advantage is that the requirements already exist and you know them, because you are a user. The disadvantage is the same thing: a reviewer also knows what it should do, so there is nowhere to hide. That exposure is exactly why it is a good portfolio piece. Build the core properly rather than the whole thing shallowly. A URL shortener that handles collisions, custom slugs, expiry, click analytics that do not double count, and abuse prevention is far more impressive than one that also has a landing page and a pricing table. Then write the comparison honestly: what the original does that yours does not, what you would need to add, and one thing you think yours does better. That paragraph shows judgment about somebody else's product, which is a different and rarer skill from building your own.

Concepts used

Systems thinkingReverse engineering requirementsDepth over breadthPerformanceAbuse preventionTechnical writing

Your dataset

Whatever the tool requires. Generate a realistic volume rather than a handful of rows.

Milestones

1Choose the tool and write down its core in one paragraph, excluding everything peripheral.
2List the edge cases you already know as a user, before starting.
3Build the core, handling those edge cases rather than the happy path.
4Load it with realistic volume and find where it falls over.
5Add the abuse prevention a public version would need.
6Test the failure paths, not just the successes.
7Deploy it, and use it yourself for a week instead of the original.
8Write the honest comparison: what theirs does better, what yours does better, and what you learned.

Your workspace

Build the full project here. Work through the milestones in order, in both languages.

SANKOFA SANDBOX
loading editor…
Your turn → Build it in Python first, then rebuild it in JavaScript. The logic transfers, only the syntax changes.
← All projectsNext: The Contribution →