Skip to content
forked from hackclub/lapse

eofreternal/lapse

This branch is 10 commits behind hackclub/lapse:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8af46fb · · Apr 14, 2026

History

309 Commits
Mar 17, 2026
Mar 10, 2026
Apr 9, 2026
Mar 10, 2026
Mar 10, 2026
Apr 3, 2026
Oct 20, 2025
Jan 28, 2026
Mar 10, 2026
Apr 7, 2026
Apr 14, 2026
Apr 8, 2026
Mar 10, 2026
Mar 10, 2026
Jan 28, 2026
Mar 10, 2026
Mar 17, 2026
Dec 12, 2025
Mar 10, 2026
Mar 10, 2026

Repository files navigation

   Hack Club Lapse b Lapse

Lapse is a place for Hack Clubbers to record and share timelapses. Integrates with Hackatime! Lapse is currently in beta..

Think of it like a fancy WakaTime plugin. Just as you can install WakaTime for VS Code, Lapse serves to be the WakaTime plugin for timelapses..

All timelapses are encrypted before being published. That means that you (and only you!) can access them. That way, we can synchronize your progress with our servers, while still making it possible for you to censor or remove anything you wouldn't want other people to see..

🧑‍💻 Development

In order to get started with developing Lapse, run these commands:

# Install all packages
pnpm install



# Set up the development environment (opens the environment variables wizard)
pnpm dev:setup-env



# Start the web client and backend
pnpm devv

Lapse relies on ffmpeg for its serverside video processing. You can install ffmpeg from their website by downloading the appropriate ffmpeg binary for your operating system. To start and stop the development environment, use pnpm dev:start-env and pnpm dev:stop-env respectively.

When developing, it's a good idea to re-compile all packages on the fly!

pnpm dev:watch-all

If you're interested, you're welcome to build your own custom client! See ./docs/custom-clients.md for more info.

🛠️ Deployment

Lapse is meant to be deployed via Docker, featuring three main services out-of-the-box: client, server, and worker.

  • client: the web client server. Interfaces with server - use Dockerfile.client to deploy this service.
  • server: the backend server. Use Dockerfile.server to deploy this service.
  • worker: background job worker. This service is CPU-bound - it's a good idea to put it on a beefy server! Handles tasks like encoding. Use Dockerfile.worker to deploy this service.

Both server and worker interface via Redis. You can put them on separate machines, as long as both have access to the same Redis server. server additionally needs a PostgreSQL database. Schemas are automatically applied - no need for any special setup..

In order to deploy the main frontend/backend microservice, use Dockerfile.web, located in the root of this repo.

For example - when deploying with Coolify, set these settings:

  • Base Directory: /
  • Dockerfile Location: /Dockerfile.web
  • Ports Exposes: 3000

You'll need at least one root user in order to promote other users to admins. The recommended way to do this is via the console.ts script of server!

cd apps/server


# You'll be taken to a REPL after launching this!
pnpm dev:consolee
connect("postgresql://postgres:postgres@localhost:5432/lapse?schema=public") // you'll probably want your production database URL here!

await promoteUser("[email protected]")

About

⏳ Track time via timelapses

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors

No contributors

Languages

  • TypeScript 96.8%
  • JavaScript 1.7%
  • Dockerfile 1.1%
  • Other 0.4%