A calm portfolio that proves real data work.
Gumifolio is a single-page personal portfolio for Gumi, a beginner freelance data analyst focused on web scraping, crawling, data cleaning, and dataset building. It presents honest background, real projects, a simple process view, and easy contact options so visitors can quickly judge fit and reach out.
SME Owner Dina, 39 - Needs help with messy online data but does not know how to evaluate a freelancer deeply. She wants a quick way to see whether the person has practical skill and can communicate clearly.
Agency Producer Rafi, 32 - Looks for a dependable specialist to support short-term delivery work. He needs fast proof of capability and low-risk collaboration.
Researcher or AI Builder Mira, 28 - Works with datasets and prototypes and needs someone who can gather, clean, and structure data carefully. She values technical honesty and clear evidence of process.
A researcher arrives looking for someone who can gather and clean niche public data. In the first few seconds, she sees Gumi’s role, honest background, and one compact process view that explains how raw input becomes clean output, which is enough to build initial trust.
She scrolls to the project carousel and sees only real work with clear status, features, and links. There is no inflated marketing language, no fake case study, and no hidden contact form, so the site feels straightforward and reliable.
She opens the GitHub link, checks the work, then taps the contact link directly. The result is a faster hiring path, fewer trust barriers, and a clearer chance for Gumi to win a first client or collaboration.
Team & resourcing - Small solo build or very small team: 1 engineer, 1 designer or content editor, part-time PM support.
Paste this into Cursor, Bolt, Lovable, or v0 to start building.
Build a production-ready single-page personal portfolio website for Gumi, a beginner freelance data analyst focused on web scraping, crawling, data cleaning, and dataset building. Use Next.js App Router, TypeScript strict, Tailwind v4, GSAP ScrollTrigger, Motion, Lenis, lucide-react, and deploy-ready Vercel-friendly architecture. No backend, no database, no auth. Add a 404 page. Core requirements: - Single homepage with sections: profile header, about, one process moment, projects carousel, contact links, footer ethics statement. - All content, UI labels, project data, and EN or ID copy must live in one central config file for easy editing. - Language: English default, Indonesian toggle, preference stored in localStorage. - Accessibility: skip link, aria labels, visible focus states, keyboard navigation, works at 360px width. - Performance: keep it lightweight and aim for Lighthouse mobile above 90 in all categories. - SEO and AI readiness: llms.txt, llms-full.txt, JSON-LD Person schema, robots.txt allowing crawlers, sitemap, favicon, OG image, and real HTML text for key info. - Integrations: Vercel Web Analytics only, no Google Analytics, no Stripe, no Calendly. Content behavior: - Header must show name, avatar, and rotating role line such as Data Scraper, Data Cleaner, Dataset Builder. - About copy must honestly connect welding, computer science, and data work as strengths in discipline, process, and quality. Mention AI-assisted workflow openly. - One process moment should show raw input, process, and clean output as a small terminal or pipeline story. It is not a demo suite. - Projects section should be a carousel of real projects only, with name, period or status, description, features, tags, and links. If there are too few projects, show an elegant empty state pointing to GitHub. Never invent projects. - Contact section should be links only: mailto, WhatsApp, GitHub, LinkedIn, Telegram. No form. - Footer must include a short ethics statement about scraping, robots.txt, rate limits, and no sensitive personal data. Motion guidance: - Use GSAP ScrollTrigger for scroll-linked sequences, pinning, and any multi-step storytelling moment. - Use Motion for component interactions, hover states, presence, and small transitions. - Use Lenis for smooth scrolling and sync it to ScrollTrigger via gsap.ticker. - Read motion as purpose, not decoration. - Disable all non-essential motion under prefers-reduced-motion. Data model: - Profile object: name, avatar, roles, short headline. - About object: concise paragraph(s) in EN and ID. - Process object: 3 to 4 pipeline steps with labels and short descriptions. - Projects array: id, name, period, status, description, features, tags, githubUrl, liveUrl optional, featured boolean. - Contact links object: email, WhatsApp, GitHub, LinkedIn, Telegram. - SEO object: meta titles and descriptions in EN and ID, keywords, OG image alt text. - UI copy object: section labels, empty states, button labels, and 404 copy in both languages. Implementation notes: - Keep the portfolio calm, sharp, and characterful. Do not define colors, fonts, or a visual concept beyond using the provided reference materials if present. - Build with semantic HTML, responsive layout, and accessible components. - Make the projects carousel usable with keyboard, touch, and pointer interactions. - Add a graceful 404 page that returns users to home and GitHub. - Use clean, maintainable component structure with content driven by the config file. - Include source-friendly code organization suitable for a real production portfolio.
Create a production-ready PRD.md for a single-page personal portfolio website. Focus on WHAT is built and WHY, not on visual style or code. ## Owner Gumi (Gumihoo), beginner freelance data analyst (web scraping, crawling, data cleaning, dataset building). Background: vocational school graduate in welding, studied computer science until semester 4 (did not continue), self-taught, works with AI agent assistance. No clients yet. ## Product A single-page portfolio (plus a 404 page). Structure follows a calm, minimal personal portfolio: 1. Profile header: name, avatar, rotating role line (e.g. Data Scraper | Data Cleaner | Dataset Builder) 2. About: short, honest, personal. Welding to IT to data, told as strength (discipline, process, attention to quality), not as an apology. Mention AI-assisted workflow openly 3. One process moment: a small terminal-style or pipeline-style visual showing how I work (raw input, process, clean output). A single identity piece, not an interactive demo suite 4. Projects: a carousel of REAL projects that already exist or are in progress (for example the Flutter trading journal app, status: in progress, plus anything else I add in the config). Each card: name, period/status, description, features, tags, links (GitHub/live). If projects are few, show a well-designed empty state pointing to my GitHub. Never invent projects 5. Contact: links only (mailto, WhatsApp, GitHub, LinkedIn/Telegram) via a nav dock or contact block. No form, no lead capture, no lead magnet 6. Footer: short ethics statement on scraping (robots.txt, rate limits, no sensitive personal data) Purpose: introduce who I am, prove skill through real work, and make contact easy. Not a sales page. ## Hard rules - No pricing, no services section, no FAQ, no blog, no case studies, no testimonials, no client logos, no fake numbers or fake projects - No new interactive demo suite built only for the page - All content (profile, projects, UI text in EN/ID) lives in one central config file for easy editing ## Design and motion - Do NOT define colors, fonts, or a visual concept. Visual direction comes only from /references/reference.md and the screenshots in /references/screenshots (my own selected references). State this in the PRD - Vibe words: calm, sharp, characterful. High contrast, dark-warm or neutral. No gradients, no neon, no purple-blue, no glassmorphism, no generic template look - Motion is a major quality goal. In the PRD, describe motion as PURPOSES (which moments need animation, what each must communicate), not styles. Define when to use GSAP ScrollTrigger (sequences, scroll, pin), Motion (component interactions, hover, presence), and Lenis (smooth scroll). Lenis must sync with ScrollTrigger via gsap.ticker, use the current "lenis" package, and all motion must switch off under prefers-reduced-motion ## Technical constraints (document as constraints) Next.js App Router, TypeScript strict, Tailwind v4, GSAP ScrollTrigger, Motion, Lenis, lucide-react. Deploy on Vercel with a custom domain. No backend, no database, no auth. Language: English default, Indonesian toggle, preference stored in localStorage. Accessibility: skip link, aria labels, focus states, keyboard navigation, works at 360px width. Performance: Lighthouse mobile above 90 in all categories. ## SEO and discoverability - Visible to AI tools: llms.txt, llms-full.txt, JSON-LD Person schema, robots.txt allowing crawlers, key info in real HTML text - Keywords: web scraping freelancer, data cleaning freelancer, dataset builder, freelance data analyst Indonesia, jasa scraping data - Write meta title and description in EN and ID (title max 60 chars, description max 155 chars), natural and specific, no buzzwords - OG image 1200x630, sitemap, favicon ## Integrations Vercel Web Analytics only (cookie-less). No Google Analytics, no Stripe, no Calendly. ## PRD must contain 1. Overview and goal, with realistic measurable success metrics (visits, contact clicks, Lighthouse scores) 2. Target visitors (SMEs, agencies, researchers/AI builders, recruiters) and what makes them trust me 3. Honest one-sentence positioning, no buzzwords 4. Section-by-section spec: purpose, required content, behavior 5. Project card data model and empty-state behavior 6. Motion requirements (purposes, tool choice, reduced-motion rules) 7. Functional and non-functional requirements 8. SEO and AI-readiness spec 9. Non-goals 10. Risks and mitigations (few projects, scraping legality, animation performance, looking generic) 11. Success checklist with priorities P0/P1/P2 12. Open questions for me to fill: domain, email, WhatsApp number, GitHub/LinkedIn/Telegram links, project list, avatar photo ## Output rules - Output only PRD.md, markdown, simple and specific language - Use hyphens and colons, no em dashes or en dashes - State assumptions at the top, do not ask me questions back - You may challenge my assumptions if there is a better approach, and explain why
Design by The Resonance | Powered by GPC – The AI Transformation Company