alpha
Login
or
Join now
natespilman.at
/
atjam.at
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
A jam is a shared-deadline creative challenge: one prompt, a roster of participants, a single due date. Submissions point at records that li
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
atjam.at
/
web
/
app
/
at
main
4 folders
2 files
Nate Spilman
web: rank the feed by what's live, and point prod at EPTSS
11d ago
06a063bb
components
web: rank the feed by what's live, and point prod at EPTSS Prod's home feed was built with VITE_KNOWN_ORGANIZERS set to the nls-testuser1 test account, so atjam.at listed fourteen seeded test rounds and no real ones — EPTSS Round 31 was never in the feed at all. Point it at @eptss.at. Vite bakes this at build time, so it takes a `flyctl deploy` to land. Then rank what's left. Thirty-one archived EPTSS rounds outnumber the one live round 31:1, and an undivided list buries the only round anyone can act on. Split on the existing Round.deriveState — open/in-progress up top under "Active", closed folded into a <details> the browser already knows how to render. Add UNLISTED_ROUNDS for records that are real but not presentable: partial migrations, drafts superseded by a later record. They stay on the network and reachable by direct link, they just don't get featured. A partially migrated duplicate of Round 29 is the first entry — it derives `open`, so it was ranking beside the genuinely active round. Both surfaces that list rounds route through listedRounds(). Also group milestones that share an instant into one transit station. A phase boundary is a point, not a span — EPTSS closes signups and opens voting at the same moment — so drawing two stations put a segment between them and asserted a duration that doesn't exist. Round 31 has two such boundaries and goes from six stations to four. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 week ago
lib
web: rank the feed by what's live, and point prod at EPTSS Prod's home feed was built with VITE_KNOWN_ORGANIZERS set to the nls-testuser1 test account, so atjam.at listed fourteen seeded test rounds and no real ones — EPTSS Round 31 was never in the feed at all. Point it at @eptss.at. Vite bakes this at build time, so it takes a `flyctl deploy` to land. Then rank what's left. Thirty-one archived EPTSS rounds outnumber the one live round 31:1, and an undivided list buries the only round anyone can act on. Split on the existing Round.deriveState — open/in-progress up top under "Active", closed folded into a <details> the browser already knows how to render. Add UNLISTED_ROUNDS for records that are real but not presentable: partial migrations, drafts superseded by a later record. They stay on the network and reachable by direct link, they just don't get featured. A partially migrated duplicate of Round 29 is the first entry — it derives `open`, so it was ranking beside the genuinely active round. Both surfaces that list rounds route through listedRounds(). Also group milestones that share an instant into one transit station. A phase boundary is a point, not a span — EPTSS closes signups and opens voting at the same moment — so drawing two stations put a segment between them and asserted a duration that doesn't exist. Round 31 has two such boundaries and goes from six stations to four. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 week ago
routes
web: rank the feed by what's live, and point prod at EPTSS Prod's home feed was built with VITE_KNOWN_ORGANIZERS set to the nls-testuser1 test account, so atjam.at listed fourteen seeded test rounds and no real ones — EPTSS Round 31 was never in the feed at all. Point it at @eptss.at. Vite bakes this at build time, so it takes a `flyctl deploy` to land. Then rank what's left. Thirty-one archived EPTSS rounds outnumber the one live round 31:1, and an undivided list buries the only round anyone can act on. Split on the existing Round.deriveState — open/in-progress up top under "Active", closed folded into a <details> the browser already knows how to render. Add UNLISTED_ROUNDS for records that are real but not presentable: partial migrations, drafts superseded by a later record. They stay on the network and reachable by direct link, they just don't get featured. A partially migrated duplicate of Round 29 is the first entry — it derives `open`, so it was ranking beside the genuinely active round. Both surfaces that list rounds route through listedRounds(). Also group milestones that share an instant into one transit station. A phase boundary is a point, not a span — EPTSS closes signups and opens voting at the same moment — so drawing two stations put a segment between them and asserted a duration that doesn't exist. Round 31 has two such boundaries and goes from six stations to four. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 week ago
styles
web: rank the feed by what's live, and point prod at EPTSS Prod's home feed was built with VITE_KNOWN_ORGANIZERS set to the nls-testuser1 test account, so atjam.at listed fourteen seeded test rounds and no real ones — EPTSS Round 31 was never in the feed at all. Point it at @eptss.at. Vite bakes this at build time, so it takes a `flyctl deploy` to land. Then rank what's left. Thirty-one archived EPTSS rounds outnumber the one live round 31:1, and an undivided list buries the only round anyone can act on. Split on the existing Round.deriveState — open/in-progress up top under "Active", closed folded into a <details> the browser already knows how to render. Add UNLISTED_ROUNDS for records that are real but not presentable: partial migrations, drafts superseded by a later record. They stay on the network and reachable by direct link, they just don't get featured. A partially migrated duplicate of Round 29 is the first entry — it derives `open`, so it was ranking beside the genuinely active round. Both surfaces that list rounds route through listedRounds(). Also group milestones that share an instant into one transit station. A phase boundary is a point, not a span — EPTSS closes signups and opens voting at the same moment — so drawing two stations put a segment between them and asserted a duration that doesn't exist. Round 31 has two such boundaries and goes from six stations to four. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 week ago
root.tsx
docs: add "Built on atjam" showcase page New /docs/built-on (TSX route + markdown mirror): a truthful "in the wild" adopters table (the atjam.at app itself + EPTSS) plus an end-to-end worked example mapping a judged, votable game jam — the rpg.actor shape — onto the at.atjam.* spine. It shows the two illustrative actor.rpg.* lexicons an adopter would publish under their own namespace, the round wired through the extension points, and vote tallying via the existing Queries.getBacklinks substrate. Explicit callout that rpg.actor does not actually run on atjam. Wired into the docs sidebar, the overview list, and the footer. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2 months ago
routes.ts
checkpoint: in-flight TanStack Start → React Router migration Preserves uncommitted refactor work before doing an unrelated NSID rename on a separate branch. Resume from this branch when picking the refactor back up. - Switching web/src/ scaffold (TanStack Start) to web/app/ (React Router) - Adding Fly.io deploy config (Dockerfile, fly.toml, DEPLOY.md) - Vite/tsconfig adjustments for new framework Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2 months ago