Ask HN: How to build online calculator website?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • streamlit

    Streamlit — A faster way to build and share data apps.

  • Surprised nobody’s mentioned streamlit yet.

    Maybe I’m misunderstanding your use case, but if you want to create web apps out of your backend work, streamlit may be your ticket for “easy to understand on the back end, hyper-simple front end.”

    At least worth giving it a look.

    https://streamlit.io/

  • Elm

    Compiler for Elm, a functional language for reliable webapps.

  • Little bit unconventional, but try writing your front end in Elm, and use the elm-ui library to avoid writing html or javascript.

    It compiles to javascript and will generate a an index.html for you if you want.

    Elm is highly opinionated… maybe you’ll love it, or maybe you’ll hate it, but it’s a good fit for what you want to do.

    https://elm-lang.org/

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • Water.css

    A drop-in collection of CSS styles to make simple websites just a little nicer

  • For styling, depending on the look and feel you are shooting for, I would suggest either a classless CSS library like https://watercss.kognise.dev/ or (the one I sponsor) https://missing.style

    Or, if you want something a bit fancier and are willing to put in some work, Bulma is easy to get going with:

    https://bulma.io/

    If you want to sprinkle in some fancy-pants AJAX functionality without going full JS front-end retard, I recommend my own library, htmx:

    https://htmx.org/examples

  • Bulma

    Modern CSS framework based on Flexbox

  • For styling, depending on the look and feel you are shooting for, I would suggest either a classless CSS library like https://watercss.kognise.dev/ or (the one I sponsor) https://missing.style

    Or, if you want something a bit fancier and are willing to put in some work, Bulma is easy to get going with:

    https://bulma.io/

    If you want to sprinkle in some fancy-pants AJAX functionality without going full JS front-end retard, I recommend my own library, htmx:

    https://htmx.org/examples

  • numeric

    Numerical analysis in Javascript (by sloisel)

  • Here's my personal goto:

    Find some minimal CSS framework. My preference is Skeleton [0] or Bootstrap [1]. The key is just finding something minimal that works without too much fuss. Personally, I rather have a minimal framework provide 'responsiveness' so I don't have to worry about it but I also want it to get out of the way of anything I do.

    Use JQuery [2]. Don't rely on CSS for animations or interactivity. In theory CSS does a lot. In practice it's a nightmare to use and to get it play well with whatever else I'm doing in the page.

    Write in "bare" HTML and "vanilla" JavaScript. Don't use a static site generator and don't use a JavaScript framework.

    Port in JavaScript libraries as needed. Some of the ones I tend to use are numeric.js [3], downlaod.js [4] and audience-minutes [5]. If you're doing spreadsheet things, maybe there's some JS package out there that will help.

    Doing "raw" HTML/"vanilla" JavaScript makes me effectively unhirable but for limited scope side projects where I have full control and want to minimize bit-rot, this is fine.

    The point is to create something that's minimal and focuses on functionality. The CSS is just there to make it not look like a Web 1.0 page but otherwise steps out of the way to focus on the actual usage of the application.

    For context, here are some projects where I've used this philosophy (all open source, feel free to pilfer): Noixer [6], Resonator Voyant Tarot [7], Boston Train Track (now defunct) [8], CalebHarrington.com (an artist friend) [9], What Is This License [10], HSV Hero [11].

    [0] http://getskeleton.com/

    [1] https://getbootstrap.com/

    [2] https://jquery.com/

    [3] https://github.com/sloisel/numeric

    [4] https://github.com/rndme/download

    [5] https://github.com/berthubert/audience-minutes

    [6] https://mechaelephant.com/noixer/

    [7] https://abetusk.github.io/ResonatorVoyantTarot/

    [8] https://github.com/abetusk/bostontraintrack

    [9] https://calebharrington.com/

    [10] https://mechaelephant.com/whatisthislicense/

    [11] https://mechaelephant.com/hsvhero

  • download

    file downloading using client-side javascript

  • Here's my personal goto:

    Find some minimal CSS framework. My preference is Skeleton [0] or Bootstrap [1]. The key is just finding something minimal that works without too much fuss. Personally, I rather have a minimal framework provide 'responsiveness' so I don't have to worry about it but I also want it to get out of the way of anything I do.

    Use JQuery [2]. Don't rely on CSS for animations or interactivity. In theory CSS does a lot. In practice it's a nightmare to use and to get it play well with whatever else I'm doing in the page.

    Write in "bare" HTML and "vanilla" JavaScript. Don't use a static site generator and don't use a JavaScript framework.

    Port in JavaScript libraries as needed. Some of the ones I tend to use are numeric.js [3], downlaod.js [4] and audience-minutes [5]. If you're doing spreadsheet things, maybe there's some JS package out there that will help.

    Doing "raw" HTML/"vanilla" JavaScript makes me effectively unhirable but for limited scope side projects where I have full control and want to minimize bit-rot, this is fine.

    The point is to create something that's minimal and focuses on functionality. The CSS is just there to make it not look like a Web 1.0 page but otherwise steps out of the way to focus on the actual usage of the application.

    For context, here are some projects where I've used this philosophy (all open source, feel free to pilfer): Noixer [6], Resonator Voyant Tarot [7], Boston Train Track (now defunct) [8], CalebHarrington.com (an artist friend) [9], What Is This License [10], HSV Hero [11].

    [0] http://getskeleton.com/

    [1] https://getbootstrap.com/

    [2] https://jquery.com/

    [3] https://github.com/sloisel/numeric

    [4] https://github.com/rndme/download

    [5] https://github.com/berthubert/audience-minutes

    [6] https://mechaelephant.com/noixer/

    [7] https://abetusk.github.io/ResonatorVoyantTarot/

    [8] https://github.com/abetusk/bostontraintrack

    [9] https://calebharrington.com/

    [10] https://mechaelephant.com/whatisthislicense/

    [11] https://mechaelephant.com/hsvhero

  • audience-minutes

    generate statistics on the number of audience minutes your site is generating, and if readers make it to the end of your screeds

  • Here's my personal goto:

    Find some minimal CSS framework. My preference is Skeleton [0] or Bootstrap [1]. The key is just finding something minimal that works without too much fuss. Personally, I rather have a minimal framework provide 'responsiveness' so I don't have to worry about it but I also want it to get out of the way of anything I do.

    Use JQuery [2]. Don't rely on CSS for animations or interactivity. In theory CSS does a lot. In practice it's a nightmare to use and to get it play well with whatever else I'm doing in the page.

    Write in "bare" HTML and "vanilla" JavaScript. Don't use a static site generator and don't use a JavaScript framework.

    Port in JavaScript libraries as needed. Some of the ones I tend to use are numeric.js [3], downlaod.js [4] and audience-minutes [5]. If you're doing spreadsheet things, maybe there's some JS package out there that will help.

    Doing "raw" HTML/"vanilla" JavaScript makes me effectively unhirable but for limited scope side projects where I have full control and want to minimize bit-rot, this is fine.

    The point is to create something that's minimal and focuses on functionality. The CSS is just there to make it not look like a Web 1.0 page but otherwise steps out of the way to focus on the actual usage of the application.

    For context, here are some projects where I've used this philosophy (all open source, feel free to pilfer): Noixer [6], Resonator Voyant Tarot [7], Boston Train Track (now defunct) [8], CalebHarrington.com (an artist friend) [9], What Is This License [10], HSV Hero [11].

    [0] http://getskeleton.com/

    [1] https://getbootstrap.com/

    [2] https://jquery.com/

    [3] https://github.com/sloisel/numeric

    [4] https://github.com/rndme/download

    [5] https://github.com/berthubert/audience-minutes

    [6] https://mechaelephant.com/noixer/

    [7] https://abetusk.github.io/ResonatorVoyantTarot/

    [8] https://github.com/abetusk/bostontraintrack

    [9] https://calebharrington.com/

    [10] https://mechaelephant.com/whatisthislicense/

    [11] https://mechaelephant.com/hsvhero

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • bostontraintrack

    Discontinued Simple real time tracking of the Boston Red, Orange and Blue metro lines using Open Street Map (via OpenLayers) and the MBTA's real time metro tracking. (service is now shut down)

  • Here's my personal goto:

    Find some minimal CSS framework. My preference is Skeleton [0] or Bootstrap [1]. The key is just finding something minimal that works without too much fuss. Personally, I rather have a minimal framework provide 'responsiveness' so I don't have to worry about it but I also want it to get out of the way of anything I do.

    Use JQuery [2]. Don't rely on CSS for animations or interactivity. In theory CSS does a lot. In practice it's a nightmare to use and to get it play well with whatever else I'm doing in the page.

    Write in "bare" HTML and "vanilla" JavaScript. Don't use a static site generator and don't use a JavaScript framework.

    Port in JavaScript libraries as needed. Some of the ones I tend to use are numeric.js [3], downlaod.js [4] and audience-minutes [5]. If you're doing spreadsheet things, maybe there's some JS package out there that will help.

    Doing "raw" HTML/"vanilla" JavaScript makes me effectively unhirable but for limited scope side projects where I have full control and want to minimize bit-rot, this is fine.

    The point is to create something that's minimal and focuses on functionality. The CSS is just there to make it not look like a Web 1.0 page but otherwise steps out of the way to focus on the actual usage of the application.

    For context, here are some projects where I've used this philosophy (all open source, feel free to pilfer): Noixer [6], Resonator Voyant Tarot [7], Boston Train Track (now defunct) [8], CalebHarrington.com (an artist friend) [9], What Is This License [10], HSV Hero [11].

    [0] http://getskeleton.com/

    [1] https://getbootstrap.com/

    [2] https://jquery.com/

    [3] https://github.com/sloisel/numeric

    [4] https://github.com/rndme/download

    [5] https://github.com/berthubert/audience-minutes

    [6] https://mechaelephant.com/noixer/

    [7] https://abetusk.github.io/ResonatorVoyantTarot/

    [8] https://github.com/abetusk/bostontraintrack

    [9] https://calebharrington.com/

    [10] https://mechaelephant.com/whatisthislicense/

    [11] https://mechaelephant.com/hsvhero

  • jQuery

    jQuery JavaScript Library

  • Here's my personal goto:

    Find some minimal CSS framework. My preference is Skeleton [0] or Bootstrap [1]. The key is just finding something minimal that works without too much fuss. Personally, I rather have a minimal framework provide 'responsiveness' so I don't have to worry about it but I also want it to get out of the way of anything I do.

    Use JQuery [2]. Don't rely on CSS for animations or interactivity. In theory CSS does a lot. In practice it's a nightmare to use and to get it play well with whatever else I'm doing in the page.

    Write in "bare" HTML and "vanilla" JavaScript. Don't use a static site generator and don't use a JavaScript framework.

    Port in JavaScript libraries as needed. Some of the ones I tend to use are numeric.js [3], downlaod.js [4] and audience-minutes [5]. If you're doing spreadsheet things, maybe there's some JS package out there that will help.

    Doing "raw" HTML/"vanilla" JavaScript makes me effectively unhirable but for limited scope side projects where I have full control and want to minimize bit-rot, this is fine.

    The point is to create something that's minimal and focuses on functionality. The CSS is just there to make it not look like a Web 1.0 page but otherwise steps out of the way to focus on the actual usage of the application.

    For context, here are some projects where I've used this philosophy (all open source, feel free to pilfer): Noixer [6], Resonator Voyant Tarot [7], Boston Train Track (now defunct) [8], CalebHarrington.com (an artist friend) [9], What Is This License [10], HSV Hero [11].

    [0] http://getskeleton.com/

    [1] https://getbootstrap.com/

    [2] https://jquery.com/

    [3] https://github.com/sloisel/numeric

    [4] https://github.com/rndme/download

    [5] https://github.com/berthubert/audience-minutes

    [6] https://mechaelephant.com/noixer/

    [7] https://abetusk.github.io/ResonatorVoyantTarot/

    [8] https://github.com/abetusk/bostontraintrack

    [9] https://calebharrington.com/

    [10] https://mechaelephant.com/whatisthislicense/

    [11] https://mechaelephant.com/hsvhero

  • Bootstrap

    The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.

  • Here's my personal goto:

    Find some minimal CSS framework. My preference is Skeleton [0] or Bootstrap [1]. The key is just finding something minimal that works without too much fuss. Personally, I rather have a minimal framework provide 'responsiveness' so I don't have to worry about it but I also want it to get out of the way of anything I do.

    Use JQuery [2]. Don't rely on CSS for animations or interactivity. In theory CSS does a lot. In practice it's a nightmare to use and to get it play well with whatever else I'm doing in the page.

    Write in "bare" HTML and "vanilla" JavaScript. Don't use a static site generator and don't use a JavaScript framework.

    Port in JavaScript libraries as needed. Some of the ones I tend to use are numeric.js [3], downlaod.js [4] and audience-minutes [5]. If you're doing spreadsheet things, maybe there's some JS package out there that will help.

    Doing "raw" HTML/"vanilla" JavaScript makes me effectively unhirable but for limited scope side projects where I have full control and want to minimize bit-rot, this is fine.

    The point is to create something that's minimal and focuses on functionality. The CSS is just there to make it not look like a Web 1.0 page but otherwise steps out of the way to focus on the actual usage of the application.

    For context, here are some projects where I've used this philosophy (all open source, feel free to pilfer): Noixer [6], Resonator Voyant Tarot [7], Boston Train Track (now defunct) [8], CalebHarrington.com (an artist friend) [9], What Is This License [10], HSV Hero [11].

    [0] http://getskeleton.com/

    [1] https://getbootstrap.com/

    [2] https://jquery.com/

    [3] https://github.com/sloisel/numeric

    [4] https://github.com/rndme/download

    [5] https://github.com/berthubert/audience-minutes

    [6] https://mechaelephant.com/noixer/

    [7] https://abetusk.github.io/ResonatorVoyantTarot/

    [8] https://github.com/abetusk/bostontraintrack

    [9] https://calebharrington.com/

    [10] https://mechaelephant.com/whatisthislicense/

    [11] https://mechaelephant.com/hsvhero

  • ResonatorVoyantTarot

    An experiment in creating generative tarot cards.

  • Here's my personal goto:

    Find some minimal CSS framework. My preference is Skeleton [0] or Bootstrap [1]. The key is just finding something minimal that works without too much fuss. Personally, I rather have a minimal framework provide 'responsiveness' so I don't have to worry about it but I also want it to get out of the way of anything I do.

    Use JQuery [2]. Don't rely on CSS for animations or interactivity. In theory CSS does a lot. In practice it's a nightmare to use and to get it play well with whatever else I'm doing in the page.

    Write in "bare" HTML and "vanilla" JavaScript. Don't use a static site generator and don't use a JavaScript framework.

    Port in JavaScript libraries as needed. Some of the ones I tend to use are numeric.js [3], downlaod.js [4] and audience-minutes [5]. If you're doing spreadsheet things, maybe there's some JS package out there that will help.

    Doing "raw" HTML/"vanilla" JavaScript makes me effectively unhirable but for limited scope side projects where I have full control and want to minimize bit-rot, this is fine.

    The point is to create something that's minimal and focuses on functionality. The CSS is just there to make it not look like a Web 1.0 page but otherwise steps out of the way to focus on the actual usage of the application.

    For context, here are some projects where I've used this philosophy (all open source, feel free to pilfer): Noixer [6], Resonator Voyant Tarot [7], Boston Train Track (now defunct) [8], CalebHarrington.com (an artist friend) [9], What Is This License [10], HSV Hero [11].

    [0] http://getskeleton.com/

    [1] https://getbootstrap.com/

    [2] https://jquery.com/

    [3] https://github.com/sloisel/numeric

    [4] https://github.com/rndme/download

    [5] https://github.com/berthubert/audience-minutes

    [6] https://mechaelephant.com/noixer/

    [7] https://abetusk.github.io/ResonatorVoyantTarot/

    [8] https://github.com/abetusk/bostontraintrack

    [9] https://calebharrington.com/

    [10] https://mechaelephant.com/whatisthislicense/

    [11] https://mechaelephant.com/hsvhero

  • htmx

    </> htmx - high power tools for HTML

  • mvp

    MVP.css — Minimalist classless CSS stylesheet for HTML elements

  • You could pay a front end dev to use a preexisting template.

    Or, you could Google “classless CSS”, if you’re OK writing some HTML.

    I made a plug and play CSS library here for those that don’t want to write CSS: https://github.com/andybrewer/mvp

  • bulma-templates

    free flexbox templates built with the bulma css framework

  • I use a simple serverside framework such as ExpressJS or FlaskJS, which routes URL requests to HTML page responses.

    Served by NGINX on a Linux server. I host with DigitalOcean for $6/month

    I use a CSS Framework template. I like Bulma for its simplicity: https://bulmatemplates.github.io/bulma-templates/

    Summary of things to google:

    - simple Serverside framework for

    - Digital ocean nginx tutorial

    - CSS Framework Template

  • BMI-Calculator

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts