The Problem
At the end of 2025 I finally decided to get tattooed, which closed a five-year long endeavor of me trying to come up with what I really want represented on my body. After very cumbersome back and forth emailing I got Nika (Thanks, I still love it when I look into the mirror!!) to trust me enough to spend six hours in the studio to get me a free-hand colorful line from arms to shins (twice). Tattoo is first and foremost a work of art and I got that, but many people, same as I are really diligent on finding who will their artist gonna be.

I was surprised how hard this task really was. When I dug deeper into the world of tattoo market I found out that the infrastructure behind it is not what I expected it to be at all. Old web databases, outdated websites of studios and artists, one app in the Appstore. This immediately caught my attention as a project that is potentially interesting and at the same time not easy at all (which is kinda my twisted way of torturing myself, since I am mostly not ready to do any of this).
When I started to work on Dattoo seriously it took me some time, but finally when I describe the real problem I also started to make progress too. Today tattoo artists in the Czech Republic juggle Instagram DMs, they most likely encounter a number of no-shows without deposits, and have portfolios buried by algorithms. Well, same as we all do. At the same time artist are not investing in building proper websites and if they do, they usually settle for single form or just an email address.
Lastly I don't see a modern platform that takes tattoo art seriously enough to be bold and make actual organization that is offering artist equal opportunities to promote their work, gives them a set of tools to basically focus on their art and their art alone. I want to change that.

What is Dattoo
Dattoo is an app build in Expo framework which is a smart way to write in react native and build to iOS, Android and even web at the same time. It is a go to solution for a single developer like me.
To really understand what Expo does imagine a know example of standard website. To render the website you can run standard JS code in your browser. A similar mechanic is happening on mobile, except the browser is the Expo app itself.
┌─────────────────────────────────────────┐
│ DATTOO APP (what user installs) │
│ │
│ Part A: Native shell (Swift/Kotlin) │
│ - App icon, launch screen │
│ - Camera, push notifications, Stripe │
│ - Real iOS/Android UI widgets │
│ │
│ Part B: Your JS bundle │
│ - All your React/TS from src/ │
│ - Runs on Hermes (a JS engine) │
│ - Like a script the native app runs │
└─────────────────────────────────────────┘
What Dattoo really is right now is a proposal of getting features that artist would like to use every single day—to position Dattoo as a workflow tool for artists first. The main goal is with marketplace as a later layer. I am not aiming to build another booking app, I would like to create entire ecosystem of functions that tattoo artists love build on top marketplace that people who seek to be tattooed can trust.
Frontend (mobile app)
| Area | Choice |
|---|---|
| Framework | Expo SDK 54 + React Native 0.81 + React 19 |
| Routing | Expo Router (file-based, thin routing with screen components)* |
| Styling | NativeWind 4 (Tailwind on RN) with a strict 4dp grid design system |
| Data fetching | TanStack Query v5 (~39 query/mutation modules) |
| Payments UI | @stripe/stripe-react-native (Which are experimental in the current Beta) |
| Lists / perf | FlashList, Reanimated, expo-image |
| Runtime / tooling | Bun (package manager, scripts, >=1.3.11) |
Dattoo is written with roughly 437 TypeScript/TSX files under src/ folder.Backend
| Area | Choice |
|---|---|
| Platform | Supabase (hosted Postgres + Auth + Storage + Realtime) |
| API | Deno Edge Functions - one main api function with an action-dispatch pattern ({"action": "create-order", "payload": {...}}) |
| Domains | Artists, orders, payments, messages, gallery, marketplace, blog, banners, user |
| Realtime | Supabase Realtime for in-order messaging |
| Migrations | Timestamped SQL in supabase/migrations/ |
| Expo Push Notifications | (APNs + FCM via Firebase dattoo-app project) |
| Reporting and monitoring | Sentry - crash/error tracking LogRocket - anonymous session replay |
- Thanks to thin routing the project can change UI without re-testing navigation plumbing—you can change URLs without re-testing functionality.
CI/CD & quality
- GitHub Actions on every PR: typecheck → lint → Jest (~380+ tests)
- Husky pre-commit:
tsc --noEmit+ lint - EAS Build profiles:
development,preview,production - Jest + Testing Library + MSW for API mocking
- patch-package for
@stripe/stripe-react-native

Visit Dattoo
I hope that Dattoo will become much more than just an app or marketplace or booking or an ecosystem. Even though this all seems nice to me, my biggest dream would be to create a platform where artist share not just their work, but their experience, create workshops, and build community inside of it.
Dattoo is currently in beta testing on TestFlight and has a floating time frame of two months to be fully published on all platforms (that's around 1. 9. 2026). It is set to launch on Czech market first. You can try it yourself by applying to be a beta tester on https://www.dattoo.framer.website (Please do, it would mean a world to me!). I am looking forward to your feedback if anything at all. Enjoy Dattoo!