Skip to content

feat!: separate into microservices and encode on the server (v2.0.0)#146

Draft
ascpixi wants to merge 16 commits intomainfrom
feat/v2
Draft

feat!: separate into microservices and encode on the server (v2.0.0)#146
ascpixi wants to merge 16 commits intomainfrom
feat/v2

Conversation

@ascpixi
Copy link
Member

@ascpixi ascpixi commented Feb 21, 2026

Warning

This PR is a breaking change. It changes the way Lapse is deployed and its public and internal API.

This PR implements a microservice structure:

  • server: handles backend tasks
  • client: interfaces between the server and the browser
  • worker: encodes timelapses and applies edit lists

A non-exhaustive list of features this pull request will implement is as follows:

  • video editing via edit lists
  • reliable ffmpeg-powered encoding
  • draft timelapses - user can have multiple timelapses set as draft, which can be sent for processing in different times. This also means users can await the processing of a timelapse while creating another, as well as having unlimited retries in the case of failed processing.
  • file upload via S3 signed URLs, which should be more reliable as this will be handled by Cloudflare on production
  • decoupling the canonical client from the server - custom clients can be developed via the @hackclub/lapse-api package
  • better unit tests for server and worker

Do note that this PR forces the API to move URLs from https://lapse.hackclub.com to https://api.lapse.hackclub.com.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant