Ask HN: Companies of one, what is your tech stack (2021)?

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
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • htmx

    </> htmx - high power tools for HTML

  • For any user action that hits the backend, I use https://htmx.org/ and just return a small HTML snippet as the API response. No point using client-side JS for that (no latency gains and makes the tech stack less homogenous).

  • rqlite

    The lightweight, distributed relational database built on SQLite.

  • rqlite author here, happy to answer questions about it. I should note that rqlite is distributed database that uses SQLite as its database engine. This means in practice the it replicates a SQLite database to each node on the rqlite cluster -- but it's not a SQLite replication system per-se.

    https://github.com/rqlite/rqlite/blob/master/DOC/FAQ.md

  • 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
  • Seaweed File System

    Discontinued SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, cross-DC active-active replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding. [Moved to: https://github.com/seaweedfs/seaweedfs] (by chrislusf)

  • Hey, I was trying out Seaweed yesterday. I ran into an issue with HTTPS, it seems to be not very well supported at the moment.

    I managed to get it running mostly secure, but replication didn't work because the volumes were calling eachother with HTTP instead of HTTPS. The HTTP request is hardcoded here: https://github.com/chrislusf/seaweedfs/blob/43fd11278ef81185... and probably in a lot of other places.

    I even tried setting the address of the volume to https in the startup script, but then it makes a request to http://https://volume1.example.com and it still fails.

    I also noticed that the master API is still available over HTTP even when HTTPS is enabled. I can make an issue for these things if you want.

    These issues are currently the only showstopper for me. I need to have every endpoint on TLS with peer verification enabled. If you can get it fixed I will gladly continue testing seaweedfs and support you on Patreon :-)

  • parsemail

    Hanami fork of https://github.com/DusanKasan/parsemail

  • https://hanami.run email forwarding services with webhook, smtp, disposable emails

    Tech Stack:

    - Ruby/ for webapp and user facing service: very quick to get the feature out, easiser to work with HTML, database access. Being a one man shop, I have to develop fast

  • webcrate

    📦🔗 Organize your web with WebCrate, a modern and beautiful bookmarking tool

  • https://webcrate.app - OSS bookmarking tool to help you organize your web

    - Vue / Nuxt / Plain CSS

    - TypeScript / Node / Express

    - Hosted in your own personal cloud thanks to Deta Space (https://deta.space/discovery/webcrate)

    Nuxt made the frontend super simple and fast to build, it takes care of a lot of things for you! Deta is also awesome for devs

  • rq

    Simple job queues for Python

  • I run a side project podcatcher site https://jcasts.io. As I don't have a lot of spare time and this isn't making money, simple+cheap are important factors, so I stick with what I'm familiar with and only adopt new things when I have the need.

    - Django

    Enough said, really, it's a solid workhorse with a healthy ecosystem. The admin feature is very useful for simple backend data management. No other particular reason to pick this over Rails, Laravel etc other than my familiarity with Python and the framework.

    - PostgreSQL

    No issues here, works just fine. I use the full text search instead of a separate search indexer such as Elastic - it makes the deployment simpler and reduces overhead of serializing and syncing the search index and database. You can get good performance by paying attention to queries and indexing.

    - Redis

    Caching and queuing. I use rq [1] rather than Celery for running background tasks, it's less complex and generally easier to work with, especially if your needs are simple.

    - HTMX and AlpineJS

    SPAs can be a pain to build and maintain if you are a solo developer - it's almost like building two separate applications, and then you have to handle the integration of your backend API and frontend app. HTMX [2] lets me get 90% of the way there while still using plain Django views and templates, while still providing a smooth end-user experience. AlpineJS [3] is great for dealing with the more complex interactions where Javascript is really needed, but I still want some lightweight structure.

    - Tailwind

    I'm not a designer/CSS guru, so Tailwind is great for providing sensible defaults. Was a bit skeptical at first of maintaining long inline class names vs something like Bootstrap, but Tailwind turned out to be surprisingly productive.

    - Dokku

    Basically Heroku without the expense. Has a ton of features and buildpacks for managing single-node applications, from LetsEncrypt integration to database backups. As I run the whole thing on a single Digital Ocean droplet, this is perfect - not sure what the next step would be when/if I need to scale up to a multi-server setup.

    - Ansible

    For any server setup and routine maintenance stuff.

    - Mailgun

    Email sending. Still on free tier.

    - Github Actions

    CI/CD pipeline. Works fine, very few outages or issues, pretty easy to set up.

    - [1] https://python-rq.org/

  • Alpine.js

    A rugged, minimal framework for composing JavaScript behavior in your markup.

  • 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
  • comment-castles

    Lightweight internet forum

  • I built an open source Reddit/HN clone:

    https://www.peachesnstink.com

    The back-end is Node.js and PostgreSQL (no ORM). The front-end is plain HTML, plain CSS and plain JavaScript. I chose that stack because I wanted to try Node.js and Postgres, and I'm not a big fan of front-end frameworks. I don't think the stack matters but people think the site is fast.

  • d3

    Bring data to life with SVG, Canvas and HTML. :bar_chart::chart_with_upwards_trend::tada:

  • I run Plotapi (or PlotAPI) https://plotapi.com - the value is in creating engaging and beautiful interactive visualisations with, in most cases, a single line of code.

    Stack:

    - FastAPI for the service-side

    - Wordpress for payments

    - Redis

    - Puppeteer for server-side rendering

    - HTML/CSS/JavaScript, Regl(http://regl.party), D3.js(http://d3js.org) for visualisations

    - Nikola for gallery of examples

    I chose FastAPI because Python was low friction for getting started, and I wanted something that didn't enforce a methodology and would stay out my way!

    Perhaps the most controversial is my use of Wordpress... I use it because I know it works, and it isn't a gamble to assume it will be around and maintained in years to come. As I'm one person, I get to focus more on where Plotapi adds value!

    I think my choices have an impact on success because they allow me to work quickly... from the user's point of view, I'm sure they wouldn't care about any of the tech apart from what's in the generated visualisation!

  • ExtPay

    The JavaScript library for ExtensionPay.com — payments for your browser extensions, no server needed.

  • csgo-tracker

    Simple Electron app that lets you track your CS:GO matches and stats

  • I don't know a whole lot about Electron and friends, but saw this project the other day that does new builds with a Github action: https://github.com/davidaf3/csgo-tracker/blob/master/.github... maybe it'd be useful to look at?

  • microcosm

    Discontinued Go based API and core business logic for the Microcosm community CMS. (by microcosm-cc)

  • Manual via https://pkg.go.dev/database/sql with handwritten SQL in the majority of places... but with a wrapper to handle the more complex search scenarios.

    For example these from a multi-tenant SaaS forum platform...

    This helper to get connections: https://github.com/microcosm-cc/microcosm/blob/master/helper... used like this for inserts: https://github.com/microcosm-cc/microcosm/blob/master/models... and this for reads https://github.com/microcosm-cc/microcosm/blob/master/models... .

    But searches... i.e. highly consistent SELECT queries with different WHERE statements (and potentially FROM statements), then in each project I tend to have an idea of a search struct ( https://github.com/microcosm-cc/microcosm/blob/master/models... ) that will validate the inputs and represent the search query, and then something that will consume that and build the SQL for it ( https://github.com/microcosm-cc/microcosm/blob/master/models... ). This isn't pretty... but it's easy for me to tune, debug, and keeps the rest of the code base very maintainable... all the complexity is here in the search.

    The vast majority of SQL is very very simple and needs no ORM, and the complexity is just in the search scenario where I want to be able to tune the performance more than an ORM would allow me to do so.

  • nestflix.fun

    A website showcasing nested stories: fictional movies within movies and shows within shows.

  • libheif

    libheif is an HEIF and AVIF file format decoder and encoder.

  • sqlc

    Generate type-safe code from SQL

  • exembed

    Go Embed experiments

  • budibase

    Budibase is an open-source low code platform that helps you build internal tools in minutes 🚀

  • Hey, co-founder of Budibase here.

    This is fantastic feedback, thank you very much for taking the time to write this up.

    We totally agree with the points you have raised - in fact we are in the process of addressing the component deletion problem; providing the ability for users to delete components with the keyboard or use an action bar that will be shown in the preview.

    As for mapping data - this is something that is requested a lot and as such is high priority. We will be working on in the coming weeks, providing full JS support and transformation logic for any source of data that you fetch from your Budibase applications.

    Great to hear you had a good experience using Budibase self hosted. We are constantly trying to make the Budibase setup process easier, both through our self hosting setup CLI and through standard deployment configurations that developers are used to - such as docker compose and helm charts for kubernetes.

    Please do continue to follow Budibase - We are confident that you will love the features we planned on our roadmap for the next few months!

    https://github.com/Budibase/Budibase/projects/10

  • prestige

    A text-based HTTP client in the browser. An interface-less Postman.

  • Still early days at https://prestigemad.com (recently discussed at https://news.ycombinator.com/item?id=27412445)

    - Backend is a Django project, database is PostgreSQL.

    - Frontend powered by Mithril.js and the editor by CodeMirror.

    - Hosted on a $5 box on EC2.

    - GoatCounter for analytics.

    - CloudFlare for DNS, NameCheap for domain.

    Also https://httpbun.com

    - Backend is a vanilla Go project.

    - Frontend is plain HTML and CSS, I don't recall it having any JS at all.

    - Hosted on the same $5 box on EC2.

    - No analytics (yet).

    - CloudFlare for DNS, NameCheap for domain.

    It is refreshing to see how much I can squeeze out of a $5 box. I don't intend to stay with EC2 for long, but when its cheap, I'd rather spend my time improving Prestige.

  • Ansible

    Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com.

  • Sass

    Sass makes CSS fun!

  • obs-studio

    OBS Studio - Free and open source software for live streaming and screen recording

  • auth0-java

    Java client library for the Auth0 platform

  • electron-builder

    A complete solution to package and build a ready for distribution Electron app with “auto update” support out of the box

  • I use electron-builder [0] to build my Electron app. IIRC there are a few CLI flags to build for different operating systems without needing to run it in the target OS. So you don't even need to use GitHub Actions.

    [0] https://www.electron.build/

  • 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
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