Textus
당신이 펜을 잡으면 AI가 잉크를 이어줍니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A goals app with a coach you talk to. Make an account with a name and password and you get a dashboard:
Beside it (or behind the bar at the bottom on a phone) is the chat. Tell the
coach what happened, "did push day", "move the recipe to the top", "I tried
robotics club but it's not for me", and it updates the dashboard. Everything it
changes, and everything you tap, can be undone. A new account can tap "Start
from my plan" to add the plan in plan.json in one go. It's all saved in a
database, so it's there when you reload or log in from another device, and
everyone who signs up gets their own private dashboard.
Plain HTML, CSS and JavaScript in the browser, no framework and no build step, plus a few small server files that run on Vercel.
| File | What it does |
|---|---|
index.html | The page: the log-in box, the dashboard, and the chat |
style.css | How it looks, including phone layout and dark mode |
app.js | Logs you in, draws the dashboard, and sends chat messages |
week.js | Date math for weekly goals: this week's count and the streak |
plan.json | The plan "Start from my plan" adds to a new account |
api/signup.js, api/login.js, api/logout.js | Making an account, logging in and out |
api/me.js | Sends the page your dashboard and recent chat when it opens |
api/chat.js | Passes your message to Claude, which can update your dashboard |
api/edit.js | Taps on the page: ticking, moving or deleting a task, logging a workout, "Start from my plan" |
api/undo.js | The Undo button: reverses everything one chat reply or one tap changed |
lib/db.js | The database connection, and the tables (it creates and updates them itself, see "Changing the database" below) |
lib/auth.js | Password hashing and sign-in tokens |
lib/chat.js | The tools Claude (and the page) use to change goals, Next up, the Log and Tried |
lib/plan.js | Adds a whole plan at once, as one undoable change |
package.json | Tells Vercel to install the two libraries the server uses, and how to run the tests |
test/ | Automatic checks: passwords, the AI's tools, undo, and that nobody can touch someone else's list |
.github/workflows/test.yml | Runs the tests on GitHub for every pull request |
CHAT_PASSCODE setting; four random words make a good one), each
person can send at most 60 chat messages a day (DAILY_MESSAGE_LIMIT), and
everyone together at most 200 a day (TOTAL_DAILY_LIMIT). That total is the
real ceiling on the AI bill, because an invite code can be passed around.The AI part (steps 1 to 3) is already done if the old chat worked.
goal-dashboard.ANTHROPIC_API_KEY: the key from step 1.CHAT_PASSCODE: the invite code people type when they make an account.
Share it only with people you want using the app.ALLOWED_ORIGIN (only if the site isn't at https://flashdw.github.io):
the address of the site that may use the server.DATABASE_URL setting by itself. The tables are created automatically the
first time someone uses the app.SERVER_URL in app.js points at the Vercel project's main address,
https://goal-dashboard-one.vercel.app , which the GitHub Pages site uses. That
address also shows the whole app, so you can use either one.
lib/db.js keeps the database layout as a numbered list of steps
(MIGRATIONS). When the server starts it runs any step that hasn't run yet
and remembers it in a schema_migrations table, so there's still no SQL to
type by hand. To change the layout, add a new step at the end of the list.
Never edit a step that's already live: the database won't run it again.
npm test runs the checks. On your computer the database tests are skipped
unless TEST_DATABASE_URL points at an empty throwaway Postgres database
(never the real one, the tests wipe it). On GitHub every pull request runs all
of them automatically with a fresh database; a red X on the PR means something
broke.
The app needs its server, so python -m http.server isn't enough any more.
Install Node.js and the Vercel command line tool (npm i -g vercel), run
vercel link once, then vercel env pull (this copies the settings into a
local .env.local, which git ignores) and vercel dev. Open the address it
prints. Note this uses the same database as the live site.
To check the phone layout, open the browser's dev tools (F12) and turn on the device toolbar (Ctrl+Shift+M).