the whole site is this folder. every file matters:
Palimpsest Reader.dc.html
the app itself — layout, logic, all the copy. open it, it runs.
support.js
the runtime the page needs. don't edit, don't delete.
article-data.js
the built-in first article (window.ARTICLE) — title, sections, notes, references.
published-layer.js
the public layer — works you added and your marks. this is the file you keep replacing.
media-slot.js
the drag-and-drop photo / video / sound slots in the right rail.
publish-config.js
two lines that switch on one-button publishing — see section 5. empty by default.
_ds/…
the fonts and colors — antikor text lives here. ship the folder as-is.
2 — host it
download the whole project folder first, then either:
netlify (easiest) — go to app.netlify.com/drop, drag the folder onto the page. you get a url like something.netlify.app in about a minute.
github pages — make a repository, upload all the files, then settings → pages → deploy from branch. the url becomes yourname.github.io/reponame.
optional — rename Palimpsest Reader.dc.html to index.html so the site opens at the root url. nothing else needs to change.
3 — connect it to the portfolio
in the portfolio repo (scaf), open design-manifest.json. find the trigger you want to travel from — trigger-laptop or trigger-table — and set its action to open your hosted reader url. the red hover framing on the landing already works; the click will now leave the desk and land in the reading room.
4 — the publishing loop
1. open your hosted site and type the passphrase in the references rail — you are now the author.
2. add works, edit works, mark the texts. everything saves in your browser.
3. press publish — (after the one-time setup in section 5). the first time it asks you to sign in; after that it is one press, and everything is live for every visitor at once.
4. no setup, or the storage is unreachable? download the published layer — still gives you a fresh published-layer.js to replace on the host by hand.
5. visitors see your works and marks. their own marks stay in their session only.
5 — one-button publishing, the one-time setup
the site stays a plain folder — the layer just lives in a small free database instead of a file. about ten minutes, once:
1. make a free account at supabase.com and create a project (any name, any region).
2. in the project, open SQL editor, paste this, press run:
create table palimpsest_layer (id int primary key, data jsonb);
insert into palimpsest_layer (id, data) values (1, '{"works":[],"marks":{}}');
alter table palimpsest_layer enable row level security;
create policy "anyone can read" on palimpsest_layer for select using (true);
create policy "author can write" on palimpsest_layer for update to authenticated using (true) with check (true);
3. authentication → users → add user — your email and a strong password. this is the author account the publish button asks for.
4. authentication → sign in / providers — turn allow new users to sign up off, so the author account stays the only one.
5. project settings → API — copy the project url and the anon public key into publish-config.js. the anon key is made to be public — it can only read.
6. redeploy the folder once. from now on the publish — button does everything.
6 — where to change things
everything below lives in Palimpsest Reader.dc.html unless said otherwise — open it in any text editor and search for the phrase:
browser tab title
search document.title
header wordmark
search reading room — the "efrîn özyetiş — reading room" line
the passphrase
search 'antigone' and change the word
visitor / author instructions
search modeLine
empty-rail hint
search nothing pinned
hint by the paper stack
search pieces in the room
the built-in article
edit article-data.js — or easier: author mode → edit this piece —
7 — one caveat
marks are pinned to character positions in the text. if you rewrite a passage that carries a mark, the mark can shift or unpin. edit gently — or re-place the marks after a heavy rewrite, then download the layer again.