Skip to main content
Roast by AI Roast By AI

www.flatfish.nl

https://www.flatfish.nl

Completed
71

Overall Score

Flatfish has made marginal improvements (LCP down 0.015s, performance score up slightly), but they've fundamentally ignored 90% of the critical feedback from 9 months ago—the incomplete 'Onze klanten' section still cuts off mid-sentence, zero trust signals remain, and conversion optimization is non-existent. They're shipping their own website like they ship client projects: functionally incomplete.

🔥

The Roast

Flatfish claims to 'build scalable products' but apparently can't scale their own website improvements—nine months later and they still have a sentence that cuts off like a forgotten draft email ('Wij werken samen met Laten we uw idee werkelijkheid maken'). It's the digital equivalent of a contractor showing you a half-painted wall and saying 'we'll finish it next quarter.' If this is their storefront, imagine what their codebase looks like—probably held together with duct tape and late-night commits.

🎯 Start Here

🔒 Trust Signals
42/100
🎯 Conversion
58/100
🔍 SEO
61/100

Google PageSpeed Insights

(Real metrics from Google)

These scores come directly from Google's PageSpeed API. The AI scores above evaluate broader aspects like copy, trust signals, and conversion.

93
Performance

Core Web Vitals

3.1s
LCP
Largest Contentful Paint
0.00
CLS
Cumulative Layout Shift
16ms
TBT
Total Blocking Time
🔒 42

Trust Signals

🎯 58

Conversion

🔍 61

SEO

📱 70

Mobile

🎨 71

Design & UX

📝 73

Copy & Messaging

76

Performance

80

Accessibility

🔒

Trust Signals

42/100

Trust signals are nearly non-existent and unchanged from 9 months ago—the 'Onze klanten' section is still a broken sentence, zero testimonials/case studies exist, and there's no third-party validation, team photos, or credibility markers. A buyer would have zero evidence you've ever shipped anything successfully.

Issues Found

  • 'Onze klanten' section remains cut off mid-sentence ('Wij werken samen met Laten we uw idee werkelijkheid maken')—zero client logos, metrics, or social proof; equivalent to a restaurant with an empty menu
  • No testimonials, case studies, founder bios, team photos, or 'years in business' statement—zero evidence of successful project delivery; red flag for enterprise buyers considering a 3-month+ engagement
  • No third-party validation: no visible SSL badge, no GDPR compliance statement, no developer certifications (Symfony certified, PHP expert), no awards, no Clutch/G2 ratings—buyers have zero external verification

Recommendations

  • Add 5-8 client logos to 'Onze klanten' section high

    Populate this section with actual client logos, company names, or brief testimonial quotes ('Delivered on time, under budget' - CTO, FinTech Startup)—immediate credibility boost.

  • Create a case study section or testimonial cards high

    Add 2-3 case studies (1-2 paragraphs each) with client name, problem, solution, result ('Reduced load time by 60%', 'Shipped in 8 weeks')—proof of delivery beats vague promises.

  • Add team bios, certifications, and third-party badges medium

    Include founder/team photos with short bios, Symfony/PHP certifications, privacy badges (GDPR compliant), and links to Clutch/G2 profiles—external validation reduces perceived risk.

🎯

Conversion

58/100

Conversion optimization is still in the dumpster—five identical CTAs scattered across the page with zero prioritization, no form on the homepage to capture interested visitors, and zero urgency/social proof triggers to push users toward action.

Issues Found

  • Five CTAs with identical styling ('Start uw project', 'Bekijk onze diensten', 'Meer informatie' x3, 'Vertel ons over uw project')—users don't know which action to take first or which matters most; 'more information' is weaker than 'book a consultation'
  • No conversion form on homepage—interested visitors must navigate to a separate 'Contact' page, breaking momentum during peak interest; you're forcing a click to capture a lead
  • Zero urgency or social proof before CTAs: no 'Limited availability', no 'Trusted by 40+ companies', no client logos, no testimonials—nothing pushes interested prospects toward action

Recommendations

  • Create a primary CTA hierarchy high

    Designate one primary CTA ('Book Free Consultation', button, prominent color), secondary CTAs ('View Case Studies', outline style), and tertiary CTAs ('Learn More', text link)—guide users toward your highest-value action.

  • Add an email signup or contact form above the fold high

    Embed a lightweight form ('Get a Free Architecture Audit', 3 fields: name, email, project type) or email signup to capture interested visitors before they leave—reduces friction and captures early-stage leads.

  • Add social proof and urgency triggers high

    Insert client logos or a testimonial section above the primary CTA, and add micro-copy like 'Average response time: 24 hours' or 'Next availability: [date]'—lowers perceived risk and pushes fence-sitters to act.

🔍

SEO

61/100

SEO remains weak and unchanged—meta tags are copy-pasted from H1, no schema markup exists, and 249-word homepage content is 60% below what's needed to rank competitively on 'PHP software development' or 'SaaS development Netherlands.'

Issues Found

  • Meta description and OG title are identical to H1—zero differentiation in SERPs or social sharing; both waste the opportunity to write compelling, click-through-optimized snippets
  • No JSON-LD schema markup (Organization, Service, LocalBusiness, BreadcrumbList)—search engines can't understand your services, location, or business structure; missing rich snippets and local pack opportunities
  • Homepage at 249 words is 60% below ideal for target keywords; competitor pages on 'PHP development' average 800-1200 words—you're outranked before you start

Recommendations

  • Write unique, click-optimized meta description high

    Create a meta description focused on conversions: 'Custom PHP & Symfony web apps for startups & enterprises. Scalable SaaS development in Amsterdam. Free consultation.' (~155 chars, includes location and benefit).

  • Add JSON-LD schema markup high

    Implement Organization, LocalBusiness, and Service schemas to help Google understand your location, services, and team—enables rich snippets and knowledge panel eligibility.

  • Expand homepage content to 800+ words medium

    Add a 'Why Flatfish' section with differentiators, a case study snippet, and FAQ—target long-tail keywords like 'custom PHP development Amsterdam' and 'Symfony experts Netherlands.'

📱

Mobile

70/100

Mobile experience is responsive but slow and tedious—3.137s LCP on mobile will feel like 4-5s on real 4G, the four-section timeline stacks into excessive scrolling before reaching conversion elements, and there's no mention of touch target optimization.

Issues Found

  • LCP at 3.137s (simulated) becomes 4-5s on real 4G connections; every 100ms delay costs ~1% conversion, so you're losing 3-4% of mobile visitors to impatience
  • Process section with four H2 headers stacks vertically, creating 5+ scrolls before users reach conversion-critical sections (client logos, CTAs)—excessive scrolling on mobile causes abandonment
  • No mention of touch target optimization; buttons and CTA links may be <48x48px, causing mis-taps and frustration on small screens—test with DevTools mobile emulation

Recommendations

  • Optimize mobile LCP below 2.5 seconds high

    Defer below-the-fold images, minify CSS/JS, and reduce server response time—aim for sub-2.5s LCP on Moto G4 (common 4G baseline) to retain mobile visitors.

  • Collapse or redesign process timeline on mobile medium

    Use a vertical timeline with expandable cards or condense four sections into two on mobile screens—reduce scrolling burden before conversion elements.

  • Verify all touch targets are ≥48×48px medium

    Test buttons, links, and form inputs in Chrome DevTools mobile emulation; increase padding/margin if targets are smaller than 48×48px to prevent mis-taps.

🎨

Design & UX

71/100

The design is clean enough to not embarrass you at a client meeting, but it's still aggressively forgettable—service cards remain visually identical, the 'Onze klanten' section is STILL a broken sentence, and there's zero visual hierarchy to guide users toward conversion.

Issues Found

  • 'Onze klanten' section cuts off mid-sentence again ('Wij werken samen met Laten we uw idee werkelijkheid maken')—9 months of feedback ignored suggests either a broken CMS or a team that doesn't QA their own homepage
  • Service cards (SaaS, Maatwerk, API, AI) are visually identical in layout, color, and weight—no differentiation or visual hierarchy means users can't tell which service is your flagship offering
  • Process timeline uses cute emojis (☕📐🔨🚀) instead of professional icons—creates 'scrappy startup' vibes when you're trying to appeal to enterprise buyers

Recommendations

  • Fix the 'Onze klanten' section immediately high

    Replace the incomplete sentence with 5-8 actual client logos, case study snippets, or testimonial quotes—this is a trust signal vacuum that screams 'we don't have satisfied clients.'

  • Add visual differentiation to service cards medium

    Use distinct colors, icons, or accent styles for each service to create a visual hierarchy that guides users to your most profitable/unique offerings (likely SaaS or API Integrations).

  • Replace emoji timeline with professional icons low

    Swap emojis for subtle, brand-aligned icons or numbered circles to signal 'enterprise-ready partner' instead of 'hipster startup trying too hard.'

📝

Copy & Messaging

73/100

Messaging remains generic and benefit-free—'Uw partner in software ontwikkeling' could be said by 10,000 Dutch dev shops, and value props like 'schaalbare' and 'perfect aansluiten' are adjectives without evidence or teeth.

Issues Found

  • H1 'Uw partner in software ontwikkeling' is indistinguishable from competitors—no unique angle, differentiator, or reason to choose Flatfish over the next agency; same issue from 9 months ago with zero iteration
  • Value propositions lack proof: 'schaalbare', 'perfect aansluiten', 'robuuste' are adjectives without metrics, client results, or proof statements to back them up
  • CTAs are weak invitations ('Start uw project', 'Vertel ons over uw project') instead of benefit-driven statements with urgency or scarcity ('Book your free 30-min consultation' or 'See our latest SaaS project')

Recommendations

  • Rewrite H1 with a unique angle high

    Replace with something like 'PHP SaaS & Custom Web Apps That Scale' or 'From Concept to 10K+ Users: Enterprise Software Built for Growth'—specific, proof-based, searchable.

  • Add proof metrics to service descriptions high

    Replace 'schaalbare' with 'Scales to 100K+ users' or 'perfect aansluiten' with 'Reduces manual data entry by 80%'—adjectives with numbers are persuasive; adjectives alone are air.

  • Upgrade CTA copy with benefit statements medium

    Change 'Start uw project' to 'Get a Free Architecture Audit' or 'See How We Cut Dev Time in Half'—specific benefits beat vague invitations.

Performance

76/100

Performance is slightly better (LCP down 0.015s to 3.137s), but it's still sluggish, and the 'Reduce unused JavaScript' warning remains unfixed—you optimized a rounding error while ignoring the elephant in the room.

Issues Found

  • LCP at 3.137s is still slow for a 249-word homepage; every 100ms costs ~1% conversion, so you're losing 3%+ of visitors to impatience on first visit
  • 'Reduce unused JavaScript' flag persists—suggests Bootstrap, jQuery, or framework bloat isn't being tree-shaken or code-split; you're shipping features users don't need
  • No visible caching strategy mentioned; no evidence of browser caching headers, server-side caching, or CDN optimization—performance likely rides on luck rather than strategy

Recommendations

  • Audit and remove unused JavaScript high

    Run Lighthouse's unused JS report and eliminate Bootstrap utilities, jQuery, or polyfills you don't need; target sub-2.5s LCP by trimming bundle size.

  • Implement aggressive caching headers high

    Set browser cache to 1 year for static assets (CSS, JS, images), server-side cache for HTML (30 min), and enable gzip compression—these alone drop LCP by 500-1000ms on repeat visits.

  • Optimize hero image to WebP with srcset medium

    Convert hero images to WebP (50% smaller), add responsive srcsets for mobile/desktop, and lazy-load below-the-fold assets—should shave 0.5-1s off LCP.

Accessibility

80/100

Accessibility is your least-broken category (20 ARIA attributes, proper landmarks), but you're missing obvious WCAG 2.1 Level A requirements like skip links and emoji labeling—good enough to pass an audit, not good enough to serve disabled users well.

Issues Found

  • Skip link is absent despite 20+ internal links—keyboard users must tab through the entire nav to reach main content, violating WCAG 2.1 Level A
  • Process timeline emojis (☕📐🔨🚀) lack ARIA labels—screen readers may announce them as 'coffee emoji' instead of 'Kennismaking' or skip them entirely, breaking the narrative for blind users
  • No visible focus indicators mentioned; keyboard navigation likely has low-contrast focus rings or no visible focus state, breaking keyboard usability for users with motor disabilities

Recommendations

  • Add a skip link above the nav high

    Insert an invisible anchor link ('Skip to main content') that jumps to the main landmark—enables keyboard users to bypass navigation in one keystroke.

  • Label emojis with ARIA or replace with semantic HTML medium

    Wrap emojis in <span aria-label='Kennismaking'>☕</span> or swap for <svg> icons with proper <title> tags so screen readers announce them semantically.

  • Ensure visible focus indicators on all interactive elements medium

    Test keyboard navigation (Tab key) and verify focus rings have minimum 3:1 contrast ratio; use CSS outline-offset: 2px for visible, accessible focus states.

Want to roast your own website?

Get AI-powered analysis with scores across 8 categories and actionable improvement tasks.

Try Roast by AI