Nicholas Moen

|

I am a fullstack web developer.

My goal is to use the web to its full potential.


Skillsets

Pretty good with: Elixir, Javascript, CSS, Python, Linux + Bash

Backend: Phoenix + LiveView, Django/Django Rest Framework, HTMX

Frontend: Vanilla JS, React, Vue, Svelte, Alpine.JS

Deployment: Docker/Podman, Ansible

CSS: Vanilla CSS, Bootstrap, Tailwind (esp. DaisyUI), and Bulma.

Unit/Integration testing: ExUnit, Vitest, Jest, Django TestCase, Jasmine

E2E testing: Experience with Playwright, Cypress, and Testcafe

Web

Phoenix + LiveView

  • Phoenix Quiz Game: Make quizzes, take quizzes, practice your math skills, and manage quiz sessions. Uses LiveView and Presence to bring realtime functionality. Tested on the backend with ExUnit.
  • Phoenix Todo List: Yet another todo list, with SPA-like functionality implemented via LiveView. Also implements basic user authentication and management. Tested on the backend with ExUnit and E2E tested with Playwright.

Django

  • RateThisPad: A rating platform made for renters to review rental properties. "What your landlord doesn't want you to know." Made using Django.
  • jsonSaver: Make, manage, and share JSON snippets using our web client or REST API. Made using Django and Django Rest Framework. Tested on the backend with Django's test suite, and E2E tested with Testcafe. (View on GitHub)
  • makeNget: Create, remix, and share 2D and 3D CAD models using a variety of open-source CAD web apps. Made using Django.
  • Menu Maker: Create a menu for your restaurant using our web client, and use our REST API to use the data however you like. Made with Django and Django Rest Framework. Tested on the backend with Django's built-in test suite. (View on GitHub)

Svelte

  • Reddit Micro: This privacy-friendly, minimalistic client parses Reddit's JSON data to create a basic, but usable, web app. Supports dark mode! (View on GitHub)

Vue.JS

  • Shopping Cart Demo: A combination Django REST backend and Vue frontend app that simulates a store, shopping cart, and checkout. Unit tested with Vue Test Utils and E2E tested with Testcafe. (View on GitHub - Backend, Frontend)
  • Django/Vue Chat: A simple chat app that uses a combination of Vue and Django. (View on GitHub)

Alpine.JS + HTMX

  • Alpine.JS + HTMX - Todo List Demo: This project is essentially just a basic todo list. However, the combination of Alpine.JS and HTMX shows how you can get the reactivity of a frontend JS framework without sacrificing the benefits of your server-side framework (session authentication, templating, etc). (View on GitHub)
    • Unit tested with Jest.
    • E2E tested with Cypress.
    • Implements proper a11y practices.
    • Uses Django on the backend.
  • Alpine.JS + HTMX - Router Demo: A buildless SPA platform made using HTMX and Alpine.js. (View on GitHub)

React

Other Stuff

Miscellaneous

  • Hetzner DNS Tools: A simple Hetzner DNS API client for Python and Bash. (View on GitHub or PyPI)
  • OmniQR Code Viewer: A minimalist, privacy-friendly Chrome extension that always displays a QR code in the corner of your browser window. Perfect for news streamers who use a web browser while streaming! (View on GitHub)

Writeups