All projects

Ventry case study

2023–2024Historical development period

Ventry: file sharing with an expiry built in

Ventry was developed from 2023 to 2024 around a direct promise: share a file through a link, give that link an expiry, and remove the file automatically when its time is up.

Visit Ventry
A time-bounded file lifecycleThe Ventry flow couples the link's availability with the lifetime of the stored file.
  1. Upload file
  2. Set expiry
  3. Share link
  4. Remove automatically

The problem

Many file-sharing links outlive the moment they were created for. That leaves the sender responsible for remembering where a file is hosted and when it should no longer be available.

Ventry tied access to a defined expiry and paired that expiry with automatic file removal, so temporary sharing did not depend on a later manual cleanup step.

My role

I built Ventry from 2023 to 2024 as a TypeScript and Next.js project. The portfolio records that period as completed work rather than implying current development.

My work centered on the browser flow for uploading a file, creating a shareable link and making the expiry visible as part of the sharing lifecycle.

How the lifecycle is structured

  1. The sender uploads a file and chooses the time window in which it should remain available.
  2. Ventry creates a link that represents access to that file for the configured period.
  3. Once the expiry is reached, link access ends and the associated file is removed automatically.

Technologies used

  • TypeScript
  • Next.js

Key decisions

Expiry belongs to the share

The lifetime is part of creating the link, not a separate cleanup preference that has to be remembered later.

Link and file share one lifecycle

An expired link and its stored file are treated as one state transition so access and retention do not drift apart.

Keep the browser flow direct

The core interaction stays focused on the file, its expiry and the resulting link rather than adding unrelated project-management features.

Implementation challenges

Access and storage must agree

Ending access is only half of the promise. The stored file also has to follow the same expiry so a dead link does not leave forgotten data behind.

Cleanup happens without a page visit

Expiry is time-driven rather than triggered by the sender returning to the site, so removal cannot rely on a later manual interaction.

Project status

  • The portfolio records Ventry's development period as 2023 to 2024.
  • The implemented concept connected expiring links with automatic removal of the associated file.
  • The public ventry.host site remains online and currently describes self-deleting uploads; that does not imply that Jan is still developing the project.