Tell your story through photos — without Lightroom, without expensive tools.
- Sign up at racconto.app
- Create a project → add photos → organize into chapters
- Publish your portfolio → share
racconto.app/your-username
Most photo tools force a choice: heavy editing software (Lightroom, Capture One) or simple sharing (Instagram, Google Photos). Neither lets you tell the story behind a shoot — the context, the sequence, the intent.
Racconto is for photographers who think in projects, not feeds. Film photographers documenting a roll. Wedding photographers sharing a curated story with clients. Hobbyists who want a clean portfolio without an Adobe subscription.
I built it because I wanted it myself.
Racconto is a photo storytelling tool and portfolio platform for anyone who takes photos — phone, film, or digital. Organize your shots into chapters, build a public portfolio, and share your story — all without heavy software.
Built for everyone who loves photography.
Organize photos into projects with chapters and sub-chapters. Drag to reorder. Filter by star rating or color label.
Concept, idea and any memo notes with Markdown support related to projects and photos.
One-click public portfolio at racconto.app/username. Share your work with a clean, distraction-free URL. Full-screen lightbox with automatic EXIF extraction.
Discover stories from other photographers at racconto.app/explore. Chronological feed (no algorithm, no likes) of portfolios that artists opt-in to share. Filter by camera type (Film / Digital / Mobile / Mixed) and genre tags. Search by username or portfolio title. Follow your favorite photographers — follower count stays private, only the artist sees their own.
Auto-watch folders and upload photos in the background. Works offline with an upload queue.
Native iPhone and iPad app built with SwiftUI. Full photo management, story editing, and portfolio viewing — optimized for touch.
| Layer | Technology |
|---|---|
| Backend | FastAPI (Python) + PostgreSQL (Docker) |
| Frontend | React + Vite + TypeScript + Tailwind CSS + TanStack React Query v5 |
| Images | Cloudflare Images (WebP auto-convert, 3200px resize, variants: public/grid/thumb) |
| Auth | JWT + bcrypt + Email verification (Brevo) + Google / Apple / Naver / LINE OAuth |
| Desktop | Electron 41 (macOS / Windows) |
| iOS | SwiftUI + URLSession async/await (iOS 18+) |
| i18n | react-i18next (Korean / English / Japanese) |
| Deploy | Linode + Nginx + systemd + Let's Encrypt |
Now in open beta — sign up and start building your portfolio today.
This project is source-available, not open source.
Licensed under MIT with Commons Clause.
In plain language:
- ✅ View, fork, and study the code freely
- ✅ Personal, non-commercial use and self-hosting for your own photography workflow
- ❌ Running this as a hosted service for others (even for free)
- ❌ Commercial use, resale, or redistribution
Commons Clause was chosen to keep the code open for learning and personal use, while preventing commercial competitors from simply deploying it as their own service. If you're interested in a commercial license, get in touch.
© 2026 Dawoon Choi. All rights reserved.
Lightroom 없이도, 비싼 툴 없이도 — 당신의 사진으로 이야기를 만드세요.
- racconto.app 에서 회원가입
- 프로젝트 생성 → 사진 업로드 → 챕터로 구성
- 포트폴리오 공개 →
racconto.app/username공유
사진 툴은 항상 둘 중 하나예요. 무거운 편집 소프트웨어(라이트룸, 캡처원)이거나, 단순한 공유 앱(인스타그램, 구글 포토)이거나. 둘 다 촬영 뒤에 있는 이야기 — 맥락, 순서, 의도 — 를 담을 수 없어요.
Racconto는 피드가 아니라 프로젝트로 생각하는 사진가를 위해 만들었어요. 한 롤을 기록하는 필름 사진가, 클라이언트에게 정제된 이야기를 전달하고 싶은 웨딩 사진가, Adobe 구독 없이 깔끔한 포트폴리오를 원하는 취미 사진가.
제가 쓰고 싶어서 만들었어요.
Racconto는 사진 찍는 누구나 쉽게 이야기를 만들 수 있는 사진 프로젝트 관리 + 포트폴리오 플랫폼입니다.
핸드폰, 필름, 디지털 — 어떤 카메라로 찍든 상관없어요.
사진을 챕터로 구성하고, 퍼블릭 포트폴리오를 만들고, 당신의 이야기를 세상에 공유하세요.
챕터/서브챕터 구조로 서사 구성하기. 드래그로 순서 변경, 별점/컬러 레이블로 손쉬운 필터링 및 관리.
사진과 연계된 마크다운 노트(컨셉, 메모, 리서치 등 모든 아이디어를 기록) 지원.
racconto.app/username 주소로 깔끔한 포트폴리오 공개. 전체 화면 라이트박스와 자동 EXIF 추출.
racconto.app/explore 에서 다른 사진가들의 이야기를 만나 보세요. 알고리즘 없이, 좋아요 없이 — 작가가 직접 공개한 포트폴리오만 시간순으로 보여줍니다. 카메라 종류(필름/디지털/모바일/혼합)와 장르 태그로 필터, 사진가 이름과 포트폴리오 제목 검색 가능. 마음에 든 작가를 팔로우하세요 — 팔로워 수는 본인만 볼 수 있어 부담 없는 연결이 가능합니다.
프로젝트 연결 폴더 자동 감시 + 백그라운드 업로드. 오프라인 큐 지원.
SwiftUI로 제작한 iPhone/iPad 네이티브 앱. 사진 관리, 스토리 편집, 포트폴리오 조회 — 터치에 최적화.
| 분류 | 스택 |
|---|---|
| 백엔드 | FastAPI (Python) + PostgreSQL (Docker) |
| 프론트엔드 | React + Vite + TypeScript + Tailwind CSS + TanStack React Query v5 |
| 이미지 | Cloudflare Images (WebP 자동 변환, 장변 3200px, variant: public/grid/thumb) |
| 인증 | JWT + bcrypt + 이메일 인증 (Brevo) + Google / Apple / 네이버 / LINE OAuth |
| 데스크톱 | Electron 41 (macOS / Windows) |
| iOS | SwiftUI + URLSession async/await (iOS 18+) |
| 다국어 | react-i18next (한국어 / 영어 / 일본어) |
| 배포 | Linode + Nginx + systemd + Let's Encrypt |
오픈 베타를 시작했습니다 — 지금 가입하고 포트폴리오를 만들어 보세요.
이 프로젝트는 소스 공개(source-available) 방식으로, 오픈소스가 아닙니다.
MIT + Commons Clause 라이선스 적용.
한마디로:
- ✅ 코드 열람, 포크, 학습 자유롭게 가능
- ✅ 개인 비상업적 사용 및 개인 워크플로우 셀프호스팅
- ❌ 타인을 위한 호스팅 서비스로 운영 (무료라도 불가)
- ❌ 상업적 사용, 재판매, 재배포
Commons Clause를 선택한 이유는 코드를 학습과 개인 사용에는 열어두되, 이를 그대로 가져다 상업 서비스를 만드는 것을 방지하기 위해서입니다. 상업적 라이선스에 관심이 있으시면 연락 주세요.
© 2026 Dawoon Choi. All rights reserved.




