Nicolas Jensen

Full Stack Developer

I have a passion for building functional tools for developers that are highly extensible, configurable, have a seamless developer experience, and are enjoyable to use.


Projects

Writing blog...

Nested Drag and Drop

JavaScript Ruby on Rails React Lit

A drag and drop system that allows for draging and droping elements into each other

Built in multiple different frameworks:

  • React
  • Custom Elements (Vanilla JS)
  • LitV2 (Custom Element Framework)
  • Ruby on Rails (Stimulus)
Writing blog...

Tailwind Theme Plugin

JavaScript Tailwind

A plugin for Tailwind that makes switching between colors easier and less verbose

Notable Features:

  • Supports all tailwind color variants

    (e.g. text, bg, placeholder, ring)

  • Streamlines the creation of themed components
  • Enables tailwind to function in applications that support multiple built-in or user defined themes
Writing blog...

Rails Filtering System

Ruby Ruby on Rails

An filtering system for rails models along with a frontend view for inputting filters

Notable Features:

  • Works on all models by default
  • Supports nested filtering queries
  • Allows for authorization at both the field and model level
  • Supports aggregations in the filtering like sum, count, average, etc.
  • Built to be extensible and easily configured (supports plugins and initializer configuration)
Work in progress Writing blog...

Rails Scoped Authorization

Ruby Ruby on Rails

An rails gem that provides an authorization system by building on top of the Pundit gem

Notable Features:

  • Role based authorization
  • Permissions scoped by model and CRUD action
  • Roles and permissions are configurable by an admin user
  • Permissions can have configurable scopes

    (e.g. "admin" users can edit all users, but "manager" users can only edit users in their team)

Work in progress Writing blog...

Rails Advanced Authentication

Ruby Ruby on Rails

A rails gem that makes use of warden and omniauth to provide a multitenanted authentication system

Notable Features:

  • Multitenancy
  • Omniauth
  • Invitations
  • Impersonations
  • 2FA
  • Email/Phone Verification
  • Multi-identifier Authentication
  • Password Reset
Writing blog...

Good Job Correlation Causation

Ruby Ruby on Rails

A very small rails gem that adds correlation and causation to all enqueued jobs.

This allows you to easily determine where a job came from, either by jumping to the job that spawned it, or by jumping directly to the initial job that started the entire chain.

Work in progress

Rails Boilerplate

Ruby Ruby on Rails JavaScript

A Rails application that makes use of previous projects to create a fullstack boilerplate that can be generated to contain only the features you need through Rails Application Templates

Notable Features:

  • Advanced Authentication Features
  • Advanced Scoped Authorizations
  • Approval System
  • Advanced Frontend Filtering System

Github

Read more

Writing blog...

Stickers

JavaScript

Small project that uses javascript and some geometry and math tricks to create a sticker like effect on any HTML element

Writing blog...

Splines

JavaScript

A spline class that allows for various types of splines to be created, which was built to be used in a color palette generator similar to Color Box

Work in progress Writing blog...

Breadboard CPU

Assembly

A CPU built from scratch on breadboards, made by following Ben Eater's 8-bit breadboard computer series (with some personal modifications to the design)

Modifications:

  • Changed architecture to support a 16-bit addressable memory space (Still only 8-bit data bus)
  • Added several new instructions including JSR and RTS
  • Added extra registers to make programming easier
Work in progress Writing blog...

UI Layout Library

Ruby Rust

A library for manually calculating the position, size, styling of elements in a grid or flexbox like manner, made as a learning exersize with inspiration from Nic Barker's Clay UI library

Notable Features:

  • Written in both Ruby and Rust
  • Supports Fixed, Fit, Grow, Shrink, and Relative sizing options
  • Supports dynamic content sizing
  • Uses a simple DSL to define layouts
  • Follows CSS naming conventions to simplify usage

Contact