category 'engineering'

Working with Stripe Promotion Codes

Working with Stripe Promotion Codes

Uclusion uses Stripe for it’s subscription service, and August Stripe added promotion code support to recurring subscriptions.

Ben Follis Ben Follis

Capabilities and JWT Security

Security for products like Uclusion, is a tricky beast. You need to provide a robust security model, but you don’t have a lot of wall clock time you can spend...

Ben Follis Ben Follis

Integration Tests, Promises and Websockets

Uclusion is powered by an eventually consistent Rest API and uses WebSockets to inform the client when data changes server side. This means that any integration test that depends on...

David Israel David Israel

Designing SaaS Rest APIs for web clients

For a typical browser IndexedDB storage gives you access to as much as half the free disk space. Once you convince yourself to use Rest, having that much storage makes...

David Israel David Israel

Notes on S3 backed File Downloads

Uclusion recently introduced arbitrary file uploads to our Workspaces or Stories (we previously allowed only images), and there are a few implementation notes we want to share with you.

Ben Follis Ben Follis

Everything You’ve Always Wanted to Know About DynamoDB But Didn’t Know to Ask

Your choice of database technology will determine a lot of your application’s current architecture and your roadmap.

David Israel David Israel

Navigation in React

Uclusion usually avoids creating our own way of doing things but for React navigation we need absolute control of what was loaded and what not. Out of the box navigation...

David Israel David Israel

Authenticated S3 downloads without passing through Lambdas

In my previous story I covered how Uclusion lets users securely upload files to S3 without having to route the upload data through our Lambdas. In this installment, I’ll explain...

Ben Follis Ben Follis

Uploading user files to S3 without passing through Lambdas

Uclusion’s back end is built entirely on AWS Lambda, which means we don’t have big beefy servers waiting around to service file upload requests. This presents a few challenges,

Ben Follis Ben Follis

Example production Serverless files

Update: Well turns out the new provisioned concurrency feature is mostly unusable. The hidden cost of Lambda provisioned concurrency pricing explains why but unfortunately the cost is not at all...

David Israel David Israel

Multiple tabs in your app

We had some problems with multiple tabs that are pretty common: Writing to storage could collide or not get picked up Logout in one tab would not be noticed in...

David Israel David Israel
Towards better notifications

Towards better notifications

Notifications in Uclusion used to be based on a model similar to Slack: A notification would tell you of a change, upon clicking the notification the user is navigated somewhere,...

Ben Follis Ben Follis