Set it once, up to date forever.

Neverstale builds your portfolio from the accounts you already use, then keeps it current on its own. No more remembering to update it, and no more explaining why you haven't.

Get startedfree, no card required
  1. Detect09:14

    A source changes. Neverstale notices: a new repo, a new shot, a new post.

  2. Draft09:14

    It decides whether it's worth adding, then writes it from your own material. Anything it can't trace back to your source is thrown out.

  3. ApproveMon 09:31

    You approve in one click, from the weekly digest or your inbox. On Pro, autopilot does it for you.

  4. Live09:31

    Your site updates and says when. Change your mind and you can revert it in one click.

Example data: a made-up developer, not a customer.

Site builders stop on day one.

Most AI site builders are very good at the first afternoon. Then you ship a repo, land a new role, publish a post, and the site you were proud of quietly becomes the one you apologise for.

Neverstale is the part that comes after.

most portfolios
stale · 8mo ago
with neverstale
updated 2h ago
placeholder · illustration · 4:3The abandoned portfoliohover, focus or tap for the brief

illustration · 4:3

The abandoned portfolio

purpose
Sits beside "Site builders stop on day one." Makes the cost of a neglected portfolio felt in one glance, and sets up the page's central contrast: stale is still, fresh is alive.
show
Two browser windows of the same personal portfolio, side by side. Left: abandoned. Flat, dust-toned, nothing moving, a visible "last updated 2021" stamp, a project list that stops years ago, a little dust or a single cobweb in one corner. Right: the same site, crisp and bright, with a small green "updated 2h ago" seal and a project added this week. Generic placeholder text blocks are fine; no readable real names.
style
Flat editorial vector illustration with a very light paper grain. Thin consistent linework, generous negative space, calm and a little dry-humoured. Static on the left, subtly alive on the right (a single small green dot is the only "glow").
avoid
Halloween gothic, skulls, heavy cobwebs, sad-face clichés, stock "laptop on a desk" scenes, real people, real logos, gradients, drop-shadow-heavy 3D.
palette
Navy ink #01294B, brand blue #0A5CA3, cool grey ground #E8ECF1, paper #FFFFFE, freshness green #106647 (on dark: #4CBB84), stale dust #D9C9A0 / #8C7548, one warm orange #FE9519 used sparingly
format
2400 x 1800 px, SVG preferred (or PNG/WebP at 2x). Transparent or #E8ECF1 background. Provide a dark-mode variant on #01294B.
stock search
abandoned website concept illustration · outdated website vs modern website flat illustration · dusty closed shop window sign (photo alternative)
designer or image-model prompt
Flat editorial illustration, split composition. Two identical portfolio websites in browser windows. Left window is faded, dust-grey and still, labelled "last updated 2021", with a small cobweb in one corner. Right window is crisp, in navy #01294B and blue #0A5CA3 on #E8ECF1, with a tiny green "updated 2h ago" pill. Minimal, dry, lots of negative space, light paper grain, no gradients, no people, no logos.
alt text
Two browser windows showing the same portfolio: one dusty and marked last updated 2021, one crisp and marked updated 2 hours ago.

Three templates. Any work fits any of them.

Terminal, Studio and Byline draw whatever your sources produce. Pick one, set an accent and a background, and switch whenever you like. Your content stays put.

Example content, drawn by the real templates.

Connect what you already use.

Access is read-only and limited to public data. Nothing is published unless you approve it, or you switch on autopilot.

On the free plan you press Fetch updates. On Pro, everything that can be polled is fetched every day.

  • GH

    GitHub

    New repos, releases and profile changes. Public data only, read-only access.

  • DR

    Dribbble

    Your own shots, with the image, title and link.

  • RS

    Medium, Substack and any feed

    Any RSS or Atom feed. A new post becomes a proposal.

  • LI

    LinkedInmanual

    Paste your profile and refresh when you change roles. There is no API to poll, so this one is manual.

  • BE

    Behancemanual

    Import your public profile and refresh when you add projects. Manual, and labelled that way.

  • @

    Email

    Send a note to your personal address, like "I gave a talk at X". Only your account email is accepted.

You approve. Or you don't have to.

Every proposed update lands in your inbox and in one weekly email. If you would rather not be asked, Pro has autopilot, and every automatic change comes with a one-click revert.

Weekly digest
One email, only when something changed. Approve, edit or skip from the email, with no login. Never an empty one.
Drafts you can trace
Copy is written from your own repos, shots and posts. Anything it can't trace back to a source is thrown out, never published.
Every publish is versioned
Revert any item to what it was before, whether you approved it or autopilot did.
placeholder · product screenshot · 16:10The update inbox, on desktophover, focus or tap for the brief

product screenshot · 16:10

The update inbox, on desktop

purpose
Shows the approval step for real, next to "You approve. Or you don't have to." This is the product, so it must be a genuine capture, not a Figma mock.
show
The Update inbox, "To review" tab, with two proposal cards visible (one AI-drafted "New repo: ..." card with Approve / Edit / Skip, one with a diff), the right-hand rail (Publishing: Manual approval, Weekly digest, Sources) and the sidebar. Use made-up example data: a fictional developer and a plausible repo name.
style
Straight screenshot in the real product theme (light). Optionally set on a #E8ECF1 canvas with a 1px #01294B/10% border and a soft, low shadow. No device frame.
avoid
Real user data, your own private repos, browser bookmarks bars, dev-tools, blurred-out fake text, marketing gloss.
palette
Navy ink #01294B, brand blue #0A5CA3, cool grey ground #E8ECF1, paper #FFFFFE, freshness green #106647 (on dark: #4CBB84), stale dust #D9C9A0 / #8C7548, one warm orange #FE9519 used sparingly
format
2880 x 1800 px (1440 x 900 at 2x), PNG or WebP. Light mode. Crop to the browser viewport; no OS chrome.
stock search
(not a stock asset: capture from the running app)
designer or image-model prompt
Capture from the running app: seed a dev account (scripts/seed-dev-site.mjs), open /dashboard, screenshot at 1440 x 900 @2x in light mode with two proposals showing. Replace any real names with fictional ones.
alt text
The neverstale update inbox showing two proposed updates, each with Approve, Edit and Skip buttons.
placeholder · product screenshot · 9:16The weekly digest, on a phonehover, focus or tap for the brief

product screenshot · 9:16

The weekly digest, on a phone

purpose
Proves the "approve from your email, no login" claim. Shown beside the desktop inbox to say: same decision, anywhere.
show
The real weekly digest email opened in a mail app: the "2 updates waiting" headline, the freshness seal, and one proposal row with a full-width Approve button, plus Edit and Skip. Fictional example data.
style
A real screenshot, cropped tightly to the email (top ~60%). Rounded 32px corners on the crop if you like, on a transparent background. No phone hardware frame.
avoid
Real email addresses, notification banners, battery/signal icons showing a real carrier, faked-up email copy that the product does not actually send.
palette
Navy ink #01294B, brand blue #0A5CA3, cool grey ground #E8ECF1, paper #FFFFFE, freshness green #106647 (on dark: #4CBB84), stale dust #D9C9A0 / #8C7548, one warm orange #FE9519 used sparingly
format
1179 x 2100 px (iPhone @3x, cropped), PNG. Light mode. Status bar hidden or cropped.
stock search
(not a stock asset: send yourself a real digest and capture it)
designer or image-model prompt
Send a real digest to a test inbox (lib/digest/sendDigests.js against a seeded account), open it on an iPhone, screenshot at 3x, crop to the email body. Use example data only.
alt text
The neverstale weekly digest email on a phone, with one proposed update and an Approve button.

And the rest of the job.

Analytics without cookies
Visitors, views, top pages, referrers and countries, with no cookie banner and no visitor profiles.
Ready to be found
Meta tags, a share card, a sitemap and structured data, generated for you.
Static and quick
Your site is served as plain static pages, so it stays up even when the app doesn't.
Your own domain
Point a domain you own at your site. Pro.
Yours to leave
Delete your account and your data goes with it.

Free until you want it to run itself.

Every connector is on the free plan. Pro adds the automation: it fetches for you every day, and autopilot can publish without asking.

Free

US$0

  • All connectors
  • Fetch updates on demand, 10 per source per day
  • Weekly digest with one-click approval
  • 7 days of analytics
  • A small “Kept fresh by Neverstale” badge in your footer
Get started

Pro

US$10a month

Or US$100 a year, two months free. Billed in USD or NZD.

  • Everything in Free
  • Automatic fetch, every day
  • Autopilot publishing, with one-click revert
  • Your own domain
  • No badge
  • Analytics for 7, 30 and 90 days
Start free, upgrade later

Questions, answered plainly.

Will it make things up about me?

It is built not to. Every draft is checked against the source it came from, whether that is a repo, a shot or a post, and anything it can't trace back is thrown out instead of published. You also approve each update, unless you turn on autopilot.

Which accounts can I connect?

GitHub, Dribbble, Medium, Substack and any RSS or Atom feed, LinkedIn, Behance, and updates you email in. LinkedIn and Behance have no public API we can poll, so you refresh those yourself.

What does the free plan leave out?

Background fetching. You press Fetch updates, up to 10 times per source per day, and proposals appear as usual. It also shows a small badge in your footer and keeps 7 days of analytics.

What happens if I downgrade from Pro?

Your custom domain unbinds after a 14-day grace period and autopilot goes back to manual approval. Your content is never deleted.

Where does my site live?

At neverstale.page/your-username. On Pro you can use your own domain instead.

Can I edit what it writes?

Yes. Edit any draft before it goes live, and edit anything that is already published. Every change is versioned, so you can revert it.

Nothing stale here. Suspiciously fresh.

Connect an account, review the first draft of your site, and let the rest run.

Get startedfree, no card required
placeholder · brand graphic · 1:1The freshness stamphover, focus or tap for the brief

brand graphic · 1:1

The freshness stamp

purpose
The page's closing image, beside "Nothing stale here. Suspiciously fresh." It is the brand's signature: the freshness seal as a physical date stamp. It should be recognisable on its own as neverstale.
show
A rubber date-stamp impression: a rounded rectangle or circle outline containing the mono text "UPDATED 2H AGO" and a small solid dot (the one green pixel of life). Slightly imperfect: uneven ink density, a hint of misregistration, ink spread on the edges, as if pressed onto a document. Optional small secondary text: "FRESH".
style
Authentic ink-stamp texture (speckle, worn edge), monospace lettering matching the product's mono face, ink in navy #01294B on light or off-white #F5F7F9 on dark. The dot is freshness green (#106647 on light, #4CBB84 on dark). Restrained, dry, a little funny.
avoid
Gradients, glow, "verified badge" or checkmark seals (it must not read as a trust badge), real dates, any brand or company name, clip-art stamps.
palette
Navy ink #01294B, brand blue #0A5CA3, cool grey ground #E8ECF1, paper #FFFFFE, freshness green #106647 (on dark: #4CBB84), stale dust #D9C9A0 / #8C7548, one warm orange #FE9519 used sparingly
format
SVG, transparent background, 1600 x 1600 px artboard. Deliver a light-ink version (for the dark #01294B closing section) and a navy-ink version.
stock search
rubber stamp impression vector texture · date stamp ink impression circle · expiry date stamp grunge
designer or image-model prompt
A single rubber date-stamp ink impression on a transparent background. Rounded rectangle border, monospace text "UPDATED 2H AGO", a small solid green dot before the text. Uneven ink, slight misregistration, worn edge speckle. Navy ink (#01294B), green dot (#4CBB84). No gradients, no glow, no checkmark, flat vector with texture.
alt text
An ink-stamp style seal reading "updated 2h ago" with a small green dot.