Website Rebuild KONTROVERSIONAL
Project document — the full explanation of this demo build.
Read in Bahasa Indonesia
- Version
- 1.0
- Status
- Demo / concept
- Duration
- 4 weeks
- Contact
- croissantsmoon@gmail.com
01
Executive Summary
KONTROVERSIONAL is a Jakarta digital agency founded in 2024, active on TikTok both as a brand account and through a managed roster of creators. The site running today speaks to one audience only: brands. This project rebuilds it to serve two audiences at once — brand clients and prospective talents — while carrying the agency’s TikTok visual identity onto the web without softening it.
The result is a static site with no CMS and no backend: all content lives as structured files inside the repository, so a content update is a content change, not a redesign.
Note: this build is a demonstration. Every talent, client and testimonial shown is placeholder or reference content, not a live commercial claim.
02
Background & Problem
The old site is a single marketing page with one route out: WhatsApp. It works for brands, but it has no place for creators who want to join, and it never presents the talent roster as an asset that can be sold to brands. Those two needs reinforce each other — a strong-looking roster raises credibility with brands, and a convincing client list attracts new talent.
03
Goals & Success Metrics
| Goal | Metric |
|---|---|
| Generate qualified brand inquiries | WhatsApp/contact clicks from the site, inquiry-to-call rate |
| Attract and convert talent applications | Applications received, share of qualified applications |
| Build credibility with a distinctive visual identity | Time on site, scroll depth, bounce rate vs. the current site |
| Make the roster a sellable asset to brands | Clicks from talent profiles through to the brand contact CTA |
04
Audiences
- Brands & marketers — looking for viral content execution, influencer collaborations or personal branding. Their intent is to judge credibility, then start a conversation.
- Creators & prospective talents — TikTok/Instagram creators weighing whether to join. They want to see who else is signed, what the agency offers and how to apply.
- Press & partners (secondary) — assessing the agency’s positioning and image.
The fork happens early, through large homepage panels and navigation labelled by audience rather than by feature. The crossing point is the talent profile page: a “book this talent” CTA hands creator traffic back to the brand funnel.
05
Design Direction
The visual system is taken straight from the agency’s TikTok output: black, white and a single red accent. No fourth colour, no gradients, no pastels. Oversized display type is the primary graphic element — not merely a label — and photography runs full-bleed with a cutout treatment.
- Palette — Three colours on screen at most: black, white, accent red.
- Typography — Heavy grotesque for headlines, clean sans for body. One word inside a headline turns red for emphasis.
- Signature module — “Kontroversial Take:” — a red label followed by one opinionated line, recurring across the site.
- Motion — Fast, short scroll reveals plus a marquee ticker. Not cinematic parallax.
- Two registers — Talent pages read as fashion editorial; agency culture content is allowed to feel rougher and meme-adjacent.
06
Site Structure
| Page | Contents |
|---|---|
| Home | Hero, stats bar, audience fork, services snapshot, featured talents strip, client logos, testimonials, CTA |
| /brands | Five services in detail, case studies, client logos, testimonials, CTA |
| /talents | Roster grid, niche filter, “why join us”, application CTA |
| /talents/[slug] | Portrait, name wordmark, bio, niche tags, social stats, TikTok embeds, booking CTA |
| /about | Founding story, four “why us” pillars, Kontroversial Take module |
| /work | Portfolio and case study index for brand visitors |
| /contact | WhatsApp, branched brand vs. creator form, email and Jakarta location |
07
Technical Architecture
Every technical decision follows one constraint: no CMS, no backend, content managed as code. The site is fully static and can be hosted on any CDN with no server bill.
| Layer | Choice |
|---|---|
| Framework | Next.js (App Router, output: export) — every page rendered at build time, no server |
| Language | TypeScript — the content schema is enforced at compile time |
| Styling | Tailwind CSS with a closed palette and a custom type scale |
| Content | JSON files in the repo — no CMS, a content update is one pull request |
| Forms | A static form service (Formspree/Web3Forms), with WhatsApp as the primary route |
| Images | Pre-optimised with Sharp, lazy-loaded, responsive srcset |
| Hosting | Any static host — Vercel, Netlify or Cloudflare Pages |
The consequence that matters: a malformed talent file fails the build rather than shipping as a broken page. Validation happens once at the content boundary, so the rest of the code never has to check for missing data.
08
Timeline — 4 Weeks
Four weeks, four phases. Each week ends with something that can be opened and judged, not just internal progress.
Week 1
Foundation & Design System
Set up the technical frame and the visual language before any page is built.
- Next.js with static export, TypeScript and Tailwind CSS.
- Lock the palette to black, white and one accent red — anything outside it fails at compile time, not merely at review.
- A fluid type scale (clamp) for the oversized headlines DESIGN.md §3 calls for.
- Core components: Logo, TwoToneHeadline, TakeCallout, MarqueeTicker, StatBadge, SectionBreakBlack.
Output A reusable design system and a deployed, empty shell.
Week 2
Content Layer & Talent Pages
Content as code: each talent is one JSON file, validated at build time.
- Content schema (JSON + Zod) for talents, clients, testimonials and case studies — bad data fails the build instead of reaching production.
- Ten launch talent profiles with “meet our trover” bios, niche tags and TikTok/Instagram stats.
- The /talents roster page with niche filtering.
- The /talents/[slug] profile layout: editorial portrait, name wordmark, stats block, TikTok embeds and a “book this talent” CTA.
Output The whole creator-facing path is finished and testable.
Week 3
Brand-Facing Pages
Complete the commercial side and join the two audiences into one flow.
- Home: hero, stats bar, tagline marquee and the brand vs. talent audience fork.
- /brands: five detailed services, case studies (problem → approach → result → metrics), client logos, testimonials.
- /work, then /about with the four “Not for Everyone” pillars and the Kontroversial Take module.
- /contact: a branched form (“I’m a brand” / “I’m a creator”) through a static form service, with the WhatsApp deep link as the primary fallback.
Output The full sitemap is live and interlinked.
Week 4
Polish & Launch
Turn a complete site into a production-ready one.
- Responsive image pipeline (Sharp) — talent portraits are large, so srcset is prepared at build time.
- SEO: meta tags, per-page OG images (talent profiles get shared directly), sitemap.xml.
- Accessibility pass: contrast, display type legibility on small screens, keyboard focus, prefers-reduced-motion.
- Performance testing on mobile networks, then a static deploy to Vercel/Netlify/Cloudflare Pages.
Output A live site, with basic analytics measuring the goals in Section 03.
09
Out of Scope (v1)
- A CMS or admin panel for non-technical editors — content stays code-managed, per the stakeholder decision.
- E-commerce or payments.
- A login or dashboard for talents to manage their own profiles.
- Automatic multi-language switching.
10
Open Questions
These need a decision from the agency before a real launch:
- Canonical domain: kontroversional.com or kontraversional.com?
- Are result metrics available for the client logos shown, or do they stay logo-only until case studies are written?
- Are those ten talents the full current roster?
- Are there testimonials beyond the three currently live?
- Do talent applications go straight to WhatsApp, or through a structured form?
- Should the site be Indonesian, English or bilingual?
11
Contact
Questions about this build, the scope or the timeline:
croissantsmoon@gmail.comSave this document as a PDF from your browser’s print dialog.