Skip to main content

Writing by Perttu Lähteenlahti

A collection of 63 blog posts I've written over the years. My writing spans topics like cognitive science, software development, and design — with the occasional detour into the unrelated. I revisit and revise older posts regularly, and I welcome any feedback that can help improve my writing, and more importantly, my thinking. I hope you find something interesting here.

Cover image for How to win Shipyard

How to win Shipyard

·RevenueCat

A hackers guide to building an MVP that can win RevenueCat's Shipyard hackathon

Cover image for What I'm reading in 2026

What I'm reading in 2026

Overengineered approach to tracking how many books I've read in 2026, with filtering, auto generated images, and progress bars

Cover image for Flights of 2025

Flights of 2025

A visual breakdown of my travel in 2025: 57 flights across 7 countries, from conferences in the US to quiet weeks in Finland.

Cover image for How to make money with your Android app

How to make money with your Android app

Building a great Android app takes time, creativity, and persistence. But once your app is live, there's one question every developer eventually faces: how do I actually make money from this?

Cover image for Best practices for React Query with FlatList

Best practices for React Query with FlatList

A look at how to combine React Query with FlatList, FlashList, and LegendList for smooth, stable list UIs. Best practices for handling loading states, skeletons, and safe areas.

Cover image for What I’m building for Shipaton 2025

What I’m building for Shipaton 2025

Three apps, one Shipaton: A behind-the-scenes look at what I’m building during RevenueCat’s 2025 hackathon — from saunas to CMS tools to Netlify on the go.

Cover image for App.js 2025 recap

App.js 2025 recap

A personal recap of App.js 2025: speaking about in-app purchases, highlights from Krakow, favorite talks, and why this conference remains one of my top picks.

Cover image for Vibe coding is prototyping for the masses

Vibe coding is prototyping for the masses

How vibe coding shifts software development, why it’s closer to prototyping, and how domain-embodied development will change who builds the next generation of software.

Cover image for Making money with your React Native app

Making money with your React Native app

Comprehensive look at in-app purchases and how to add them to your React Native app. Covers different types of in-app purchases, how to set them up in your app, and the psychology of good in-app purchase experiences. Technology used: React Native, RevenueCat, App Store Connect.

Cover image for React Native WebRTC

React Native WebRTC

Full article version of the talk I gave at RTC.ON Conference 2024 about getting started with WebRTC in React Native

Cover image for The novel vs. the screenplay: Se7en

The novel vs. the screenplay: Se7en

How Andrew Kevin Walker’s script went through multiple rewrites before becoming the neo-noir classic we know today. Despite its flaws, the novelization of Se7en holds personal significance for me, showing how a good story can transcend its medium.

Cover image for How to get the old Slack UI back

How to get the old Slack UI back

How to switch back to the old Slack desktop UI on Mac and say goodbye (at least temporarily) to the current UX catastrophe.

Cover image for Localizing dates in React Native the right way

Localizing dates in React Native the right way

Learn how to properly format dates based on user locale in React Native using Intl.DateTimeFormat and react-native-localize, avoiding the common pitfalls of hardcoded date formats.

Cover image for Critique of the Bayesian brain hypothesis

Critique of the Bayesian brain hypothesis

Understanding the shortcomings of the Bayesian approach to brain and cognition, reviewing criticism surrounding task selection, model selection, and theoretical contributions.

Cover image for 20 things about 2020

20 things about 2020

20 things about 2020 from my perspective. I think there are easier ways to brag about your accomplishments than trying to mask them under an annual review.

Cover image for What I read in 2018

What I read in 2018

A summary of the books I read in 2018, covering various genres and highlights.

Cover image for Designing a winning hackathon concept

Designing a winning hackathon concept

Between the years 2015 and 2018 I participated in over 70 hackathons. I won 40 of them, most wins being towards the end. Sometimes winning was mostly accidental, but majority of the time it was due to a strategy me and our team followed. This article is abot trying to write down the strategy that worked.

Cover image for Automating social cards for Gatsby.js

Automating social cards for Gatsby.js

Learn how to automatically generate Open Graph sharing images for your Gatsby.js blog by building a custom plugin using Jimp for image manipulation.

Cover image for Defining touchpoints in service design

Defining touchpoints in service design

Services are, by nature, intangible. Touchpoints are one of the main ways a service becomes tangible. This article reviews definitions of touchpoints and explores how they are used in service design practice today.