wilz-down is an Android application (APK) that reproduces the web tool at https://wilz-down.vercel.app as closely as possible — the user's stated fidelity target is "mirip 100%" (100% similar). The referenced site is a media downloader utility branded Dropr whose promise is: "Tempel tautan, pilih kualitas, unduh." — paste a link, choose a quality, download. It handles video, music, and photos from 23 services, with no account and no additional app required.
The product intent is therefore narrow and concrete: give everyday Indonesian mobile users the same single-moment workflow the website offers — paste a media link, have the platform recognized automatically, fetch the media, choose a quality, and download it — packaged as an installable Android app rather than a browser page. The audience is the same audience the site serves: casual mobile users who want speed and zero friction, with no sign-up, no onboarding, and no account state.
This document treats the referenced site as an authoritative content, structure, feature, and visual source. Its textual content, section order, interactive flows, and observable layout patterns are preserved item by item. Where the site's styling could not be verified from the captured snapshot, the supplied creative direction fills the visual layer, and those fills are labeled as such.
wilz-down is a single-purpose, single-column Android utility app. It opens directly onto its working surface — there is no login wall, no dashboard, and no account. The app's current behavior consists of:
Actors. The only active human actor is the Site Visitor — a person who opens the app and uses the same content and features the website offers. There is no second human role, no administrator, and no operator. The external media services (TikTok, Instagram, YouTube, and the other supported platforms) and the underlying fetch tooling are non-persona external actors: they are addressed by the app, they are not users of it.
Access. The referenced site states plainly: "Tanpa akun, tanpa aplikasi tambahan" — no account, no additional app. The app therefore has no application-owned identity, no sign-in, no session continuity, and no protected destinations. Every surface is anonymously reachable. This is a hard, source-backed access fact, not a default.
Ownership. All accepted human-facing behavior is owned by the app's own first-party surfaces. The media retrieval itself is performed by external tooling on the user's behalf; the app owns the interaction, the visible state, and the result.
Exclusions. The app does not add accounts, profiles, cloud sync, social features, subscriptions, analytics dashboards, or any capability the referenced site does not present. It does not become a general-purpose browser or file manager. It does not claim ownership of third-party media or grant rights the user does not have — the site's own usage note governs.
Delivery. The deliverable is an Android APK. The user asked for the website to be turned into an APK that is as close to 100% similar as possible. That means the app is a native-packaged reproduction of the site's content, structure, features, and visual design — not a redesign, not a reimagining, and not a subset. The app is installed and launched like any Android app; it does not require the user to visit the website in a browser.
Access ownership. The referenced site is explicitly account-free. The app inherits that: there is no first-use identity establishment, no returning verification, no invitation or provisioning flow, and no protected state. Nothing in the accepted behavior requires the app to know who the user is, because nothing in the accepted behavior is bound to a durable per-person entitlement, commitment, or value transfer. The only durable state is a local list of recently opened links, which belongs to the device rather than to an identity.
Current vs. future. Everything described in this document is current. No future-horizon requirements were stated by the user, and none are invented here. The fidelity constraint ("mirip 100%") applies to the current site as observed; if the site changes, that is a future concern outside this document.
External responsibility. Fetching media from a third-party platform is performed by external tooling. The app owns the request, the visible progress, the quality choices presented, and the download outcome; it does not own the third-party platform's availability, terms, or content. The site's own attribution line and usage note are preserved as content.
The referenced site is an authoritative content source. The following verified content items are preserved exactly and must appear in the app.
Branding and headline
| Item | Value |
|---|---|
| Service branding | Dropr |
| Headline | Tempel tautan, pilih kualitas, unduh. |
| Description | Video, musik, dan foto dari 23 layanan. Tanpa akun, tanpa aplikasi tambahan. |
Input area
| Item | Value |
|---|---|
| Input label | Tautan media |
| Input placeholder | https://www.tiktok.com/@akun/video/… |
| Button 1 | Tempel (action) |
| Button 2 | Ambil (action) |
| Auto-detect note | Platform dikenali otomatis dari tautan. |
Section headings and controls
| Item | Value |
|---|---|
| Technical details link | Detail teknis |
| Supported platforms heading | ## Platform yang didukung |
| Recently opened heading | ## Terakhir dibuka |
| Clear history button | Hapus riwayat (action) |
Footer content
| Item | Value |
|---|---|
| Usage note | Gunakan untuk konten milikmu atau yang diizinkan pemiliknya. Hormati hak cipta dan aturan tiap platform. |
| Attribution | Ditenagai (wilz-down.vercel.app) |
Supported platform count. The site states 23 services. The platform row must present 23 platform entries; the specific roster beyond the named examples (TikTok, Instagram, YouTube, Twitter/X, Facebook) is drawn from the site's own supported-platform list at build time and must total 23.
Media types. Video, musik, dan foto (video, music, and photos).
The app has exactly two pages: Landing and Features. Both are anonymously reachable.
The Landing page is the app's entry surface and its primary working surface. It carries the full vertical flow of the referenced site.
Information and state
Primary actions
Supporting actions
Domain entities
Component responsibilities
+/× affordance.States
The Features page owns the referenced site's available features and functions as a browsable surface for the Site Visitor.
Information and state
Primary actions
Supporting actions
Domain entities
Component responsibilities
https://wilz-down.vercel.app.States
Each requirement is a distinct story point with provenance, lifecycle facts, and observable acceptance.
FR-1 — Open the app to the working surface As a Site Visitor, I should land directly on the tool's working surface when I open the app, so that I can start immediately without any gate.
explicit (site is account-free; "Tanpa akun, tanpa aplikasi tambahan").FR-2 — See the product's promise As a Site Visitor, I should see the headline and description, so that I understand what the tool does before I use it.
explicit (content source).FR-3 — Paste a media link As a Site Visitor, I should press Tempel to place a copied media link into the input, so that I do not have to type a long URL.
explicit (feature reference: Tempel action).FR-4 — Type or edit the link directly As a Site Visitor, I should be able to type or edit the link in the input field, so that I can correct or enter a link myself.
explicit (input field with label and placeholder).https://www.tiktok.com/@akun/video/… are present.FR-5 — Automatic platform recognition As a Site Visitor, I should have the platform recognized automatically from the link, so that I do not have to tell the app which service the link belongs to.
explicit (feature reference: "Platform dikenali otomatis dari tautan.").FR-6 — Fetch the media As a Site Visitor, I should press Ambil to fetch the media behind the link, so that I can see what is available to download.
explicit (feature reference: download flow — "User pastes link, press Ambil to fetch media and choose quality, then download.").FR-7 — Choose a quality As a Site Visitor, I should choose from the available qualities, so that I get the version of the media I want.
explicit (headline: "pilih kualitas"; download flow).FR-8 — Download the media As a Site Visitor, I should download the media at the quality I chose, so that I have the file on my device.
explicit (headline: "unduh"; download flow).FR-9 — See recently opened links As a Site Visitor, I should see the links I recently opened, so that I can return to one without pasting it again.
explicit (content source: "## Terakhir dibuka"; feature reference: recent links shown).FR-10 — Re-open a recent link As a Site Visitor, I should tap a recent entry to reuse it, so that I can fetch it again quickly.
required_inference (the Terakhir dibuka list is only useful if its entries can be acted on; the site presents them as opened links).FR-11 — Clear the history As a Site Visitor, I should press Hapus riwayat to clear the recently opened list, so that I can remove links I no longer want stored.
explicit (content source: "Hapus riwayat" action).FR-12 — Read the technical details As a Site Visitor, I should expand Detail teknis to read the technical information, so that I can understand how the tool works.
explicit (content source: "Detail teknis" link; structure reference: technical details section).+ to ×.FR-13 — Browse the supported platforms As a Site Visitor, I should see the 23 supported platforms, so that I know whether my link's service is covered.
explicit (content source: "## Platform yang didukung"; description: "23 layanan").FR-14 — Read the usage and copyright note As a Site Visitor, I should see the usage note, so that I understand the permitted use of the tool.
explicit (content source: usage note).FR-15 — See the attribution As a Site Visitor, I should see the attribution line, so that the tool's source is credited.
explicit (content source: "Ditenagai (wilz-down.vercel.app)").https://wilz-down.vercel.app.FR-16 — Browse the app's features As a Site Visitor, I should be able to view the app's available features and functions, so that I can understand the full scope of what the tool offers.
explicit (planning scope: Features page owns the referenced site's available features and functions).FR-17 — Move between Landing and Features As a Site Visitor, I should be able to move between the Landing and Features pages, so that I can switch between using the tool and reading about it.
explicit (planning scope: two pages, both anonymously reachable).Product context. The Site Visitor is someone who has a media link — from TikTok, Instagram, YouTube, or one of the other supported services — and wants the file on their phone. They are on a mobile device, they are in a hurry, and they have no interest in creating an account or learning a workflow. The referenced site addresses them directly: "Tanpa akun, tanpa aplikasi tambahan." The app is the same promise in installable form.
Primary goal. Turn a copied link into a downloaded file in as few steps as possible: paste, fetch, choose a quality, download.
Distinct accepted responsibilities. The Site Visitor is the only active human actor, and their responsibilities are the whole of the app's human-facing behavior:
Relevant inputs and decisions. The link itself is the primary input. The decisions are: which link to use, whether to paste or type it, which quality to pick, and whether to keep or clear the history. There is no identity decision, no permission decision, and no configuration decision — the app has none of those.
Interactions with other accepted participants. There are no other accepted human participants. The Site Visitor interacts with external media services only indirectly: the app fetches on their behalf, and the platform's identity is surfaced back to them as a detected-platform badge. The Site Visitor never negotiates with the platform directly inside the app.
Observable success. The media file is on the device at the chosen quality, the link appears in Terakhir dibuka, and the whole interaction took a handful of taps. A secondary success is that the app looks and behaves like the site they came from — the same headline, the same two buttons, the same sections in the same order.
What makes this role distinct. There is no second role to contrast against, and that is the point: the app is deliberately single-role. The Site Visitor's work is a single linear moment — paste, fetch, choose, download — with no handoff, no approval, no counterparty, and no state that outlives the device. Any design decision that introduces a second role, a gate, or a durable account would contradict the source.
Failure and recovery. If the link is not recognized, no badge appears and the input stays editable. If the fetch fails, an inline error is shown and the Site Visitor can edit the link or press Ambil again without losing the page state. If the download fails or is interrupted, the Site Visitor is told and can retry the download without re-pasting the link.
Failure and recovery. If the typed link is malformed, no badge appears; the Site Visitor keeps editing until it is recognized or replaces it.
Failure and recovery. If the entry is no longer valid, the fetch fails with the standard inline error and the Site Visitor can paste a fresh link.
+ affordance.+ rotates to ×.https://wilz-down.vercel.app.Failure and recovery. If the attribution link cannot be opened, the page remains usable and the Site Visitor returns to Landing.
The creative direction is authoritative for this section. It names Yugo Nakamura as the muse and takes interaction as delight as its headline idea: the download tool that responds to every cursor move. The register is playful, instant, and slightly magical — a consumer tool with personality, not an enterprise utility. The palette is bright flat colour on a stark warm ground so that motion reads clearly.
Colour tokens — light mode (the only mode; dark mode is not the default and is not specified)
| Role | Token | Hex |
|---|---|---|
| Background (warm paper ground) | --bg | #F5F3EF |
| Surface (input, cards) | --surface | #FFFFFF |
| Text (ink) | --text | #1A1A1A |
| Primary (Ambil, active states, kinetic underline) | --primary | #FF4D2E |
| Accent (success, detected badges, Tempel) | --accent | #00C48C |
| Muted (secondary labels, placeholders, metadata) | --muted | #8A8A8A |
No blue or indigo appears anywhere. #0057FF, #2563EB, #4F46E5, and every blue-adjacent hue are excluded. The generic indigo/blue-on-white SaaS template is forbidden for this project.
Typography
letter-spacing: -0.03em. Section headings (## Platform yang didukung, ## Terakhir dibuka) use Space Grotesk 500 at 20px with a 2px orange underline that animates in from the left on scroll.clamp() with the mobile size as the floor.system-ui are excluded for headings and body.Shape language
border-radius: 4px.border-radius: 999px) with a 1px ink border and a filled dot indicating detected status.Layout
Imagery
Readable text and controls. Headlines, wordmarks, labels, numbers, and card text and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit. No other element covers any part of them. Decoration and motion may be cropped, bled, rotated, or overlapped as the direction asks, provided they cover no readable text or control. The Platform yang didukung row is a horizontally scrollable row: it may cross the container edge by design, and every badge must become fully readable as it passes. Under prefers-reduced-motion, the row remains horizontally scrollable so each badge can be brought fully into view.
The living headline. The first screen is a full-viewport warm paper ground (#F5F3EF) carrying a single oversized kinetic headline — "Tempel tautan, pilih kualitas, unduh." — in Space Grotesk 700 at 56px on mobile and 96px on desktop, spanning the full viewport width and breaking out of the 720px column. Each character is its own span, and each shifts horizontally by up to 8px based on cursor proximity. The headline is alive before the user touches anything: the type itself is the hero image, and the product's promise is legible in the motion.
Behind the headline, a generative pattern of thin diagonal lines (1px, 8px apart, 10% opacity) drifts 4px horizontally on a slow 4s loop — texture, not decoration, and never over the readable type.
Below the headline, the working surface: the label Tautan media, a single wide input with a 2px ink border that thickens to 3px and turns orange on focus, and the placeholder https://www.tiktok.com/@akun/video/…. To the right on desktop and below on mobile, Tempel (white fill, ink border) and Ambil (orange fill #FF4D2E, white text). When a valid link is present, a pill badge with the detected platform's icon and name slides in from the left with a spring easing and the icon pulses once — the detection is visible and delightful, not silent.
There is no card container, no gradient, no illustration. Just type, input, and motion — the whole product's promise compressed into one screen that responds to the user before they have done anything.
Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: layered_2d
Landing Hero Motion Brief
#FF4D2E) on navigation between Landing and Features; a 120ms slide-down with a springy +→× rotation on Detail teknis.#F5F3EF ground. The oversized headline spans the full width, breaking the 720px column, with the diagonal line pattern drifting behind it at 10% opacity. Below it, the Tautan media label, the wide input with its 2px ink border, and the Tempel and Ambil buttons. Nothing else. No badge yet — the badge only exists once a link is recognized.prefers-reduced-motion, all motion is disabled or reduced to simple fades: the headline characters hold their positions, the diagonal pattern stops drifting, the detected-platform badge fades in instead of sliding, the page transition becomes a plain swap, and the Platform yang didukung row remains horizontally scrollable so every badge can still be brought fully into view.Motion constraints. Motion is snappy and purposeful — 120–200ms — with spring easing reserved for the platform-detection badge and the collapsible icon rotation. No bouncy or playful easing that contradicts the tool's utility. No gradient blobs, no glassmorphism, no frosted panels, no soft shadows.
NFR-1 — Android APK delivery. The deliverable is an installable Android application package. Provenance: explicit (user constraint: "buatkan menjadi apk"). Rationale: the user asked for the website as an APK, not as a mobile web page.
NFR-2 — Fidelity to the referenced site. The app must be as close as possible to 100% similar to https://wilz-down.vercel.app in content, structure, features, and visual design. Provenance: explicit (user constraint: "mirip 100%"). Rationale: this is the user's stated acceptance bar.
NFR-3 — No account, no additional app. The app requires no account and no additional application to function. Provenance: explicit (site description: "Tanpa akun, tanpa aplikasi tambahan"). Rationale: this is the product's stated positioning and a hard access fact.
NFR-4 — Mobile-first single-column layout. The app renders a single-column vertical flow at all breakpoints, with the input and buttons stacking vertically on mobile. Provenance: explicit (creative direction layout rules; site's mobile-oriented structure). Rationale: the audience is mobile.
NFR-5 — Readable text and controls at every viewport. Headlines, wordmarks, labels, numbers, and card text and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit, with no other element covering them. Provenance: explicit (creative direction readability rule). Rationale: legibility is a hard constraint that outranks decorative cropping.
NFR-6 — Reduced-motion support. All motion is disabled or reduced to simple fades when prefers-reduced-motion is set, and the Platform yang didukung row remains horizontally scrollable so every badge can be brought fully into view. Provenance: explicit (creative direction motion rules). Rationale: accessibility without losing content.
NFR-7 — Light mode only. The ground is warm paper (#F5F3EF) with ink text; dark mode is not the default and is not specified. Provenance: explicit (creative direction: "No dark mode as the default"). Rationale: the palette is bright and flat so motion reads clearly.
NFR-8 — No blue or indigo. No blue or indigo appears anywhere in the palette. Provenance: explicit (creative direction exclusion). Rationale: the primary is orange, the accent is mint, and the ground is warm paper.
NFR-9 — Local history only. The Terakhir dibuka list is device-local and is cleared by Hapus riwayat. Provenance: required_inference (the site presents a clearable recent-links list with no account). Rationale: with no account, the only place history can live is the device.
NFR-10 — External fetch responsibility. Media retrieval is performed by external tooling on the user's behalf; the app owns the request, the visible progress, the quality choices, and the download outcome, but not the third-party platform's availability or terms. Provenance: explicit (feature reference: attribution to an external tool; site's usage note). Rationale: the app must not claim ownership of third-party content or rights.
The user specified no technology stack beyond the APK delivery target. The following are the minimum choices consistent with the accepted behavior and the creative direction.
layered_2d hero dimensionality means no WebGL or Canvas is required.Assumptions
Constraints
https://wilz-down.vercel.app. (Explicit.)#FF4D2E, the accent is #00C48C, and the ground is #F5F3EF. (Explicit, creative direction.)system-ui are excluded. (Explicit, creative direction.)Future horizon. No future requirements were stated. Nothing in this document is deferred.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!