Overall Score
Flatfish remains completely frozen since June 2026—identical 249-word content, zero schema markup, zero progress on any category, and no improvement whatsoever. This is not a website; it's a digital time capsule.
The Roast
Flatfish is what happens when a software development company treats their own website like a client they ghosted. Eight months have passed since the last roast, they've fixed literally nothing—not schema markup, not trust signals, not conversion funnels, not a single 'Meer informatie' link—and somehow they're still claiming to be a 'technical partner.' It's like a dentist showing up to work with visible cavities. The audacity to build software for others while their own site looks like it was abandoned mid-launch is genuinely impressive in the worst way.
🎯 Start Here
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.
Core Web Vitals
Trust Signals
SEO
Conversion
Copy & Messaging
Design & UX
Accessibility
Mobile
Performance
Trust Signals
Client logos visible but completely orphaned—zero credibility signals (no team bios, no security badges, no awards), testimonials absent, and metrics hidden; KVK number buried in footer footer at illegible size is the only proof of existence.
Issues Found
- Client logos remain unlinked, unquoted, and unverified—no testimonial snippets ('Flatfish delivered our SaaS MVP in 8 weeks'), no success metrics ('Reduced time-to-market by 60%,' 'Scaled to 100K+ users'), no case study links; logos are orphaned decoration adding visual noise but zero conversion lift
- Zero credibility signals visible: no team bios or LinkedIn links, no security badges (SOC2, ISO 27001, GDPR compliance assurances), no press mentions or third-party certifications; KVK number (6527303) hidden in 8pt footer text—does not inspire confidence in a software partner handling sensitive data
- No social proof dashboard or quantified metrics—missing '50+ projects delivered,' 'Founded 2019,' 'Avg project delivery 12 weeks,' '98% client satisfaction,' 'Team of 8 Symfony experts'; prospects cannot benchmark credibility against competitors or assess capacity/scale
Recommendations
-
Add client testimonials to logo section high
Below each client logo (or on hover), display a 1-2 sentence quote + client name/title: 'Flatfish built our SaaS platform in 12 weeks—shipped on time and on budget. They were responsive partners every step of the way. — Jan Jansen, CEO, Chalet.nl'
-
Build credibility section with team bios and security badges high
Add 'About the Team' section with 3-4 headshot photos + names/titles/LinkedIn links; include GDPR/NDA compliance statement and SOC2 Type II certification badge (if applicable) or roadmap to certification.
-
Add quantified metrics dashboard at top of page medium
Display 4-5 key metrics prominently (e.g., '50+ Projects Delivered' | 'Founded 2017' | 'Avg 12-week Delivery' | '98% Client Retention' | 'Team of 8 Experts'); back each with verifiable data or third-party badge.
SEO
SEO remains catastrophically weak: 249 words vs. 2,000+ minimum for competing shops, zero schema markup, and generic heading keywords that miss high-intent search terms.
Issues Found
- Content volume critically low: 249 words vs. 2,000+ words required to rank for 'Symfony webapplicatie ontwikkeling Nederland,' 'SaaS MVP bouw,' 'AI integraties ChatGPT,' or 'Schaalbare webapplicaties voor bedrijfsautomatie'
- Zero schema.org markup (Organization, SoftwareApplication, LocalBusiness, FAQSchema)—Google cannot auto-index credentials, services, location, founding date, team structure, or testimonials; missing rich snippet visibility opportunity
- Heading keywords remain generic ('Onze diensten,' 'Hoe wij werken,' 'Onze klanten')—miss high-intent terms like 'Enterprise SaaS Gebouwd op Symfony,' 'AI Integraties voor Bedrijfsautomatie,' 'Agile Custom Software Development Nederland'
Recommendations
-
Expand content to 2,000+ words with keyword-rich depth high
Add detailed service pages (SaaS Dev, API Integration, AI Coupling) with case study snippets, tech stack details (Symfony, Laravel, React), and long-tail keywords ('custom software development for SMEs in Wolvega,' 'Symfony development services Netherlands').
-
Add schema.org markup high
Implement Organization schema (name, address, phone, email), Service schema for each service offering, and LocalBusiness schema to enable rich snippets and knowledge panel eligibility.
-
Rewrite headings with high-intent keywords medium
Change h2 from 'Onze diensten' to 'Custom Software Development Services: SaaS, API, AI Integration' and 'Hoe wij werken' to 'Agile Software Development Process: From Concept to Launch.'
Conversion
Conversion funnel remains binary (Contact form or nothing), with zero segmentation, no lead magnets, no friction-reduction affordances, and client logos as orphaned decoration with no testimonial or proof attached.
Issues Found
- Client logos (Chalet.nl, Portfoliio, Alphacomm, De Valkshag, Lamppoint) remain unlinked and unquoted—no clickable case study links, no testimonial snippets, no proof metrics ('Reduced deployment time by 60%,' 'Scaled to 100K+ users'); logos alone don't convert skeptics
- Contact form context missing: no response-time guarantee ('We reply within 2 hours'), no alternative friction-reduction options (live chat, Calendly embed, phone scheduling), no reassurance copy ('Your details are confidential'); prospects must commit blind
- Zero conversion funnel segmentation: all prospects forced through identical contact flow regardless of awareness stage; missing lead magnets (SaaS Dev Checklist PDF, tech stack guide), webinar invites, resource library, or low-friction exploration for early-stage explorers
Recommendations
-
Add clickable case studies to client logos high
Make each logo clickable to a case study page (1-page minimum) showing project scope, tech stack, results metrics ('Reduced time-to-market by 60%,' 'Scaled to 50K users'), and a client testimonial quote.
-
Add context and friction-reduction to contact form high
Include response-time promise ('We reply within 2 hours on weekdays'), embed Calendly iframe for 'Schedule a 15-min discovery call,' add reassurance copy ('Your data is confidential'), and offer alternative entry: 'Download Our SaaS Dev Checklist PDF' as lead magnet.
-
Build multi-stage conversion funnel medium
Create awareness-stage landing page offering 'SaaS Development Checklist PDF' (email gate); nurture with 1-2 email followups; add consideration-stage webinar invite ('SaaS Development Best Practices'); move ready prospects to Calendly for discovery call.
Copy & Messaging
Messaging remains outcome-agnostic and metric-free—'partner in software development' describes what you do, not why customers should care; zero urgency or differentiation from 50 competing Dutch dev shops.
Issues Found
- Hero H1 ('Uw partner in software ontwikkeling') + subheading describe capability, not customer outcome—missing compelling value prop like 'Schaalbare SaaS-producten in 12 weken' or 'Van idee naar miljoen-gebruiker applicatie'
- Service descriptions remain generic and benefit-agnostic ('Wij bouwen schaalbare SaaS producten van scratch, met focus op performance en gebruikservaring')—no proof, no 'why this matters' statement, no customer-facing outcome
- CTA copy ('Start uw project,' 'Bespreken uw project,' 'Bespreek uw project') remains passive and identical across hero and footer—missing action urgency like 'Schedule Your Free Audit Today' or 'Get Your Technical Roadmap in 48 Hours'
Recommendations
-
Rewrite hero headline with customer outcome high
Change H1 to 'Schaalbare SaaS-Producten Gebouwd in 12-16 Weken' or 'Van MVP tot Miljoen Gebruikers—Wij Accelereren Jouw Groei' to signal speed and scale.
-
Add quantified benefits to service descriptions high
Replace 'Wij bouwen schaalbare SaaS producten' with 'SaaS-producten die scalen naar 100K+ gebruikers • Gemiddelde deployment time: 2 weken • Geen technische schulden.'
-
Vary and strengthen CTA copy high
Use action-oriented, time-bound CTAs: hero = 'Schedule Your Free Audit Today' (primary) + 'View Case Studies' (secondary); footer = 'Book a 30-Min Discovery Call' or 'Download Our SaaS Dev Checklist.'
Design & UX
Visual design is clean and modern, but layout hierarchy remains completely static—four identical service cards still feel like a filing cabinet rather than a journey, and the process steps still lack connectors or visual progression.
Issues Found
- Service cards (SaaS, Maatwerk, API, AI) remain visually identical in weight and prominence—no visual hierarchy signaling which services drive revenue or customer pain points; fourth card stacks awkwardly on desktop
- Process section ('Kennismaking' → 'Plan & Ontwerp' → 'Iteratief Bouwen' → 'Oplevering & Groei') still lacks numbered steps, arrows, or flow indicators—appears as four isolated boxes rather than a sequential customer journey
- Hero and bottom CTA section use identical blue-to-purple gradient background—reduces visual distinction and makes CTAs feel repetitive rather than progressive momentum
Recommendations
-
Add visual hierarchy to service cards medium
Highlight top 2 revenue-driving services (SaaS + API) with larger icons, bolder text, or a 'Most Popular' badge; reduce visual weight on lower-priority cards.
-
Add process flow connectors and numbering medium
Add numbered badges (1, 2, 3, 4) and curved arrow connectors between process steps to signal progression and reduce isolation.
-
Differentiate CTA section gradients low
Change bottom CTA gradient to purple-to-pink or teal-to-cyan to visually signal a new section and reinforce conversion momentum.
Accessibility
ARIA attributes are present (20 total) and landmarks are correctly tagged, but critical gaps remain: no skip-to-content link (WCAG Level A violation), unverified heading hierarchy nesting, and no confirmation that ARIA doesn't conflict with native HTML semantics.
Issues Found
- No skip-to-content link: keyboard users must tab through 4 nav items (Over ons, Diensten, Freelance, Contact) before reaching h1 content—violates WCAG 2.1 Level A (2.4.1 Bypass Blocks); trivial 2-minute fix ignored since June 2026 critique
- Heading hierarchy nesting unverified: data shows h1:1, h2:4, h3:8, h4:2 but actual nesting order unknown; if h3s appear before h2s or skip levels (h1 → h3 → h4), screen readers cannot build accurate document outline
- ARIA semantic alignment unchecked: no confirmation that aria-label values match landmark roles or that ARIA doesn't redundantly conflict with native HTML semantics (e.g., aria-label on a button when not necessary)
Recommendations
-
Add skip-to-content link high
Insert hidden skip link at top of page (visible on focus) that jumps directly to <main> landmark, bypassing navigation—2-minute fix that improves keyboard navigation compliance.
-
Audit heading hierarchy nesting medium
Verify h1 → h2 → h3 → h4 nesting is sequential with no skips; ensure h2s precede all h3s within each section for proper document outline.
-
Validate ARIA usage against native HTML semantics medium
Run axe DevTools or WAVE audit to confirm all aria-label/aria-describedby are necessary and don't conflict with semantic HTML (e.g., remove redundant aria-label on <nav> if role='navigation' exists).
Mobile
Responsive design is functional and mobile-first screenshots show readable text/spacing, but no sticky mobile CTA, no back-to-top affordance, and service card stacking remains flat with zero priority signaling on small screens.
Issues Found
- Service card stacking on mobile remains flat—all four cards (SaaS, Maatwerk, API, AI) stack 1-column at identical height/prominence; no accordion collapse, 'Learn more' expansion, or visual priority to guide mobile users; fourth card feels buried below fold on small screens
- No sticky mobile CTA or back-to-top button—users must scroll entire 4,200px desktop page (≈6,000px+ on mobile) from hero to contact form with zero quick-access affordances; 'Start uw project' button vanishes after hero scroll, forcing re-scroll to contact
- Hamburger menu behavior unverified—no indication if nav persists on scroll (sticky), auto-closes after link selection, or requires manual close; on very small phones (<375px), icons (rocket, gear, link, rocket) may render too small or misalign
Recommendations
-
Add sticky mobile CTA bar high
Add a fixed 'Contact' button bar at bottom of mobile viewport (44px height minimum) that stays visible on scroll, reducing friction for users who scroll past hero; use contrasting color (blue) to stand out.
-
Implement service card prioritization on mobile medium
Show top 2 services (SaaS + API) in full on mobile; collapse AI + Maatwerk into accordion tabs or 'More Services' expandable section to reduce cognitive load and page length.
-
Verify and optimize hamburger menu behavior low
Confirm hamburger menu auto-closes after link selection, icon sizes are ≥48px for touch targets, and nav persists as sticky during scroll; test on <375px devices to ensure alignment.
Performance
Performance is solid (LCP 2.48s, 97 Lighthouse), but 'unused JavaScript' audit flag suggests tree-shaking or code-splitting opportunity to push from good to premium-tier (1.0–1.2s LCP).
Issues Found
- LCP at 2.48s is functional but not premium-tier: Vercel, Figma, Stripe achieve 0.8–1.2s; 2.5s introduces subtle friction on first scroll, especially on 4G or mid-range devices
- Unused JavaScript flagged in Lighthouse audit—likely polyfills, vendor libraries, or non-critical scripts in main bundle; tree-shaking and code-splitting could reclaim 20–30% of JS payload
- TBT (Total Blocking Time) at 21ms is acceptable but approaching threshold for interaction smoothness; animation rendering or vendor script overhead may spike during user interaction
Recommendations
-
Analyze and remove unused JavaScript medium
Run Lighthouse 'Unused JavaScript' audit, identify non-critical vendor libraries, and implement code-splitting or lazy-loading for below-the-fold features (process details, client logos, footer).
-
Optimize image delivery and caching medium
Verify all 7 images use next-gen formats (WebP, AVIF), are properly sized for desktop/mobile, and have browser/CDN caching headers (max-age=30d+ for static assets).
-
Target 1.2s LCP through critical resource prioritization low
Preload above-the-fold hero image, defer non-critical CSS/fonts, and monitor Core Web Vitals with real user data (CrUX) to ensure mobile/4G users see <1.5s LCP.
Think you can beat 64/100?
Get your site brutally analyzed by the same AI. 8 scores, a punch list of fixes, 60 seconds.