SEAN TEAM
Work · PRODUCTIVITY PLATFORM --:-- 서울 · seanteam-app.netlify.app 에 배포 · 게스트로 열림

하루의 일정과
남는 시간,
시장을 한 화면에.

SEANTEAM

생산성 앱은 시간이 어디로 갔는지 셉니다.여기서는 남는 시간에값을 붙여 봅니다.

ABOUT · WHAT IT DOES

SeanTeam 은 캘린더와 시간 거래, 시세, 채팅을 한 계정에 묶은 Next.js 웹 앱입니다. 캘린더는 연·월·주·일 네 가지로 보고, 남는 시간은 시간당·30분·고정 가격을 정해 매물로 올립니다. 시세 탭 아홉 개에는 TradingView 위젯을 붙였고, 채팅은 Supabase 실시간 채널 위에서 돌며 AI 어시스턴트가 같은 대화 목록 안에 있습니다.

스키마 SQL 20개 가운데 5개가 채팅 권한과 속도를 고친 파일입니다. 어디서 막혔는지가 파일 이름에 그대로 남아 있습니다. 생산성 점수와 시간 지갑은 아직 자리만 있습니다.

01 — On the phone

폰에서는 아래 탭 여섯 개로 움직입니다.

SeanTeam 실제 홈 화면 폰 폭 — Good morning, Guest! 생산성 점수와 시간 거래 카드, 아래 탭 막대
SeanTeam 실제 캘린더 폰 폭 — 2026년 9월 한 달, 오늘 25일에 빨간 점
SeanTeam 실제 시간 거래 폰 폭 — Sell Time 버튼, 전문가·지역 검색, 분야 필터, 아직 매물 없음
  1. 오늘부터인사와 생산성 점수, 시간 거래 버튼. 게스트로 열면 데이터가 없는 상태 그대로 보입니다.
  2. 한 달이 한 화면에오늘 날짜에 빨간 점. 위에서 이전·다음 달과 보기를 바꿉니다.
  3. 남는 시간을 판다Sell Time 과 분야 필터. 폰 폭에서는 이 화면이 가로로 넘칩니다.
02 — How a day flows

오늘을 열고, 일정을 넣고, 남는 시간을 내놓습니다.

세 화면이 같은 계정과 같은 Supabase 데이터를 봅니다. 아래는 로그인하지 않은 게스트로 연 실제 화면입니다.

  1. ① Today

    대시보드는 오늘로 시작한다

    시간대에 맞춰 인사를 바꾸고, 오늘 일정 수와 다음 일정, 최근에 만든 일정 세 개를 calendar_events 에서 읽습니다. 생산성 점수와 시간 지갑은 아직 자리만 있고 값은 비어 있습니다.

  2. ② Schedule

    연 · 월 · 주 · 일, 네 가지 보기

    주와 일 보기에는 지금 시각에 빨간 선이 지나갑니다. 일정은 행 수준 보안으로 본인 것만 읽고 쓸 수 있습니다.

  3. ③ Time

    남는 시간을 매물로

    분야와 가격을 정해 시간을 올리고, 가격 단위는 시간당·30분·고정 가운데 고릅니다. 사는 쪽이 확인하면 매물 상태가 sold 로 바뀝니다. 결제는 아직 붙어 있지 않습니다.

SeanTeam 실제 대시보드 — Good morning, Guest! 생산성 점수, 시간 거래, Today's Focus 0 Events, Time Wallet 0h 0m
SeanTeam 실제 캘린더 주 보기 — 9월 20일부터 26일, 현재 시각에 빨간 가로선
SeanTeam 실제 시간 거래 화면 — Find Global Talent 검색, 개발·디자인·마케팅·컨설팅·언어 필터, No records yet

시세 탭 아홉 개, 캘린더 보기 네 개.

시세는 직접 계산하지 않고 탭마다 TradingView 위젯을 붙였습니다. 직접 만든 것은 탭 구성과 종목 검색, 그리고 뉴스와 공시를 모으는 API 입니다.

이 앱 뒤에는 Next.js 16React 19SupabaseRow Level SecurityRealtimeOpenAIGoogle TranslateTradingViewRSS 42개 가 붙어 있습니다.

누가 무엇을 읽을지는 데이터베이스가 정하고, 바깥 서비스는 API 라우트 다섯 개가 감쌉니다.

01

권한은 데이터베이스에서

대화 참여자 표에 행 수준 보안을 걸었다가, 정책이 자기 자신을 다시 부르는 재귀에 빠졌습니다. security definer 함수로 멤버십을 따로 확인하게 바꿔 풀었습니다.

02

채팅은 먼저 보여 준다

대화 목록은 localStorage 캐시로 바로 띄우고, AI 대화는 다른 대화를 불러오는 동안 먼저 엽니다. 기다리는 동안에는 뼈대 화면을 둡니다.

03

AI 는 대화 목록 안에

따로 있던 AI 페이지를 없애고 채팅의 한 대화로 넣었습니다. 기본 모델은 gpt-4o-mini, 답은 사용자가 쓴 언어로 합니다. 같은 IP 에서 분당 60회를 넘으면 잠시 멈춥니다.

04

뉴스는 서버에서 모은다

API 라우트가 21곳의 RSS 피드 42개를 동시에 읽고, 3초 안에 오지 않는 피드는 버립니다. 최신 50건을 5분 동안 캐시합니다.

03 — Counted from the repo · 2026-09-25
7,943줄의 TypeScript · 46개 파일
13개의 화면
20개의 SQL 스키마 파일
42개의 RSS 피드 · 21곳
12번의 커밋 · 2025년 10월 31일부터 12월 22일까지
ROLE
기획 · 풀스택 개발
UI
Next.js 16 · React 19 · TypeScript · Tailwind 3
DATA
Supabase — Postgres · 행 수준 보안 · Realtime · Storage
AI
OpenAI (기본 gpt-4o-mini) · 번역은 Google Translate API
MARKETS
TradingView 위젯
DEPLOY
Netlify · PWA 매니페스트
TESTS
자동 테스트 없음
STATUS
LIVE PRODUCT
WHY

만들면서 스스로에게
물은 것들.

왜 시간을 거래하나요?

생산성 앱은 대개 시간이 어디로 갔는지만 셉니다. 여기서는 남는 시간에 가격과 상대방을 붙여 보는 쪽을 택했습니다. 분야는 개발·디자인·마케팅·컨설팅·언어로 나누고, 가격은 시간당·30분·고정 가운데 고릅니다. 아직 결제는 없고, 사겠다고 확인하면 매물이 sold 로 바뀌는 데까지입니다.

왜 캘린더가 중심인가요?

일어난 일과 계획한 일이 한 곳에 있어야 나중에 붙일 점수도, 내놓을 시간도 믿을 수 있기 때문입니다. 대시보드의 오늘 일정과 다음 일정, 최근 활동은 전부 calendar_events 한 표에서 읽습니다.

채팅이 왜 가장 오래 걸렸나요?

채팅을 맞게 만드는 것은 어렵지 않습니다. 데이터베이스가 누가 어떤 대화를 읽을 수 있는지 강제하는 상태에서 맞게 만드는 것이 어렵습니다. 실시간 켜기, 정책 재귀 고치기, 목록 쿼리 줄이기가 각각 별도 SQL 파일로 남아 있습니다.

AI 어시스턴트는 무엇을 하나요?

시간 관리 코치 역할을 맡긴 OpenAI 대화입니다. 일정 분석과 활동 추천, 시간을 돈으로 환산해 보는 관점을 기본으로 두고, 사용자가 쓴 언어로 답합니다. 앞선 대화를 함께 보내 문맥을 이어 갑니다.

지금 어디까지 되나요?

캘린더 일정, 시간 매물, 채팅과 AI 대화, 블로그 글쓰기는 Supabase 와 API 에 실제로 연결돼 있습니다. 생산성 점수와 시간 지갑, 접속 중인 트레이더 수는 화면에 자리만 있고 값이 고정돼 있습니다. 유명인 거래는 표본 두 줄이고, 뉴스 탭은 API 가 기사를 돌려주는데도 화면이 다른 형식을 기다려 비어 보입니다. 폰 폭에서는 시간 거래와 시세 화면이 가로로 넘칩니다.

있는 그대로 보여 주고,계속 만듭니다.

프로젝트 전체 보기 →