Paloma Kop

Paloma Kop

Web Development Projects

Hello! I'm Paloma Kop, and I love building things for the web. Here are some of my projects.

screenshot of Subtle Cards

Subtle Cards

A full-stack app for pulling virtual tarot cards

ReactTypeScriptFlaskPython

Tools used:

  • The frontend is written in React/Typescript. It uses React Router, Vite, and Tailwind
  • The frontend builds & deploys via Netlify
  • The backend is a REST API written in Python with Flask, and is deployed to Heroku
  • The database runs on Supabase
  • True random numbers for the card selection powered by the Random.org API
  • Tarot card images processed with Imagemagick

Highlights:

  • Every tarot pull gets a unique URL that can be shared with others
  • Light/dark themes controlled by device theme (with favicon variations)
  • Dynamic emoji show current moon phase, and the moon phase at the time of each tarot pull
  • Page transitions created with the new browser standard View Transition API
screenshot of personal website

My Personal Website

The site you are looking at now, a space to display my projects and blog posts

EleventyJavaScriptNode.jsNetlify

Tools used:

Highlights:

screenshot of The Lab

The Lab

A minimal, text-adventure themed website to showcase small web-based projects and experiments

EleventyGLSLp5.jsThree.js

Tools used:

Highlights:

  • A dark/light mode that initializes based on the device preference, and saves the toggled state for future visits
  • Text-adventure inspired minimalist interface for project navigation
  • Interactive WebGL experiments and creative coding sketches
screenshot of txxt.club

txxt.club

An image and text microblog for friends to post to via SMS

Node.jsTwilioWriteFreelyServerless

Tools used:

  • Twilio serverless function running Node.js
    • Twilio provides a phone number to receive incoming SMS, and an API endpoint for launching a function when a new message is received, as well as sending outgoing SMS messages
  • WriteFreely, an open-source blog platform with an API
    • The WriteFreely instance, hosted on my server, provides the front-end blog site, as well as an RSS feed and ActivityPub stream
  • ImgBB, an image hosting service with an API

Highlights:

  • I wrote a bridge that takes incoming SMS text and image messages and posts them to the WriteFreely blog
  • It also replies via SMS with the blog URL once the new post is created
  • There is no authentication required to post, but you need to know the phone number, which is shared only by word of mouth
  • Can accept messages with multiple attachments, and will include all image attachments in the blog post
  • Text-only posts are also supported
  • When the Twilio phone number is called, it plays an audio message with instructions for posting to the blog
Mediary logo

Mediary

An internal web app for video producers and editors at Paramount to launch, monitor, and manage workflow automations

JavaScriptFlaskPythonREST APIAWS

Tools used:

Highlights:

  • I built a custom Flask API that allowed Mediary users to interchangeably order captions from an array of vendor options
    • Each of our captioning vendors had their own unique API and configuration options. The universal caption API I built allowed a caption order to be placed to any of these vendors using a normalized payload
  • I built an integration with AWS Elemental MediaConvert that allowed Mediary users to launch jobs to AWS's cloud-based media encoding service
    • Previously, all of our media encoding was done with on-premises hardware; this integration helped transiton the department's infrastructure dependencies to the cloud
  • I developed a unified template for all workflows to follow, improving consistency and maintainability
  • I also created detailed documentation for all the projects listed above
  • My team oversaw the transition of the Mediary app and its users to fully remote, cloud-based workflows, allowing them to seamlessly continue their work at the start of the pandemic

Community Infrastructure

I deploy and administrate self-hosted services for community organizations.

screenshot of Scanlines.xyz

Scanlines.xyz

An online community for people interested in DIY analog video circuits and art

DiscourseRailsEmber.jsPeertube

Tools used:

  • The web forum runs on Discourse, an open-source forum software with a Rails back-end and an Ember.js front-end
  • We also administrate a Peertube instance to provide video hosting to the community

Highlights:

  • I built a custom Discourse theme component for a collapsible embedded chat widget. This became a proof-of-concept for an official plugin by Communiteq, a managed Discourse hosting service
  • I also built a custom Discourse theme component for adding an embedded livestream video to the forum during live online events. It was initially a customized player based on video.js, but now uses Peertube. This was used in conjunction with the custom chat widget to provide a Twitch-like experience
  • Previously, we also ran a streaming server that used an RTMP module for Nginx to serve an HLS livestream video; this has been deprecated as Peertube has built-in video streaming
screenshot of Polyphase Portal

Polyphase Portal

A cooperatively-run virtual school for online classes and workshops

WordPressBigBlueButtonMatrixKeycloak

Tools used:

  • The main website is a WordPress instance, which I set up with Woocommerce and Stripe integration for ticket sales
  • We run a BigBlueButton instance for video calls (an open-source Zoom alternative that's tailored to online teaching)
  • We also run a Matrix chat server
  • SSO with Keycloak

Highlights:

  • Complete educational platform infrastructure with integrated payment processing, video conferencing, and chat
  • Single sign-on system allows students to move seamlessly between different services
  • Self-hosted solution provides full control over data and user experience

Client Websites

screenshot of Wavefield's website

Wavefield Media, Arts Organization

SquarespaceCustom CSSAnimated textScroll interaction

screenshot of Sky Goodman's website

Sky Goodman, Digital Artist

SquarespaceCustom CSS

screenshot of Cable Visions website

Cable Visions, Video Artist + Educator

SquarespaceCustom CSSAnimated background

screenshot of Thomas Dickert's website

Thomas Dickert, Chiropractor + Podcaster

SquarespaceCustom CSS

Thanks for checking out my projects!

Interested in working together?