Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Companies of one, what is your tech stack?
312 points by ecmascript 22 days ago | hide | past | favorite | 319 comments
Hello dear HNers.

Each year for the last two years I have asked companies of one, meaning companies that consists of only one person of what tech stacks you use. Feel free to link to your site or project for show case if you want.

Here is the last two threads:

(2020) https://news.ycombinator.com/item?id=25465582

(2019) https://news.ycombinator.com/item?id=21024041

What is your tech stack?

Why did you choose it?

Do you think your choices had any impact on your success?

Thanks in advance!

I run a file sharing / content delivery platform called pixeldrain: https://pixeldrain.com

The system serves 4 PB of data to 60 million visitors per month. I have served 30 PB and 700 million file views since I started tracking usage somewhere in 2018.

I'll go from front to back:

- Most of the frontend is plain HTML, CSS and JS. I have started transitioning some pages to Svelte. I like this framework for its speed and simplicity

- Cloudflare Analytics to get basic info like which pages are popular and where my users are from

- The structure of the website (page wrap, menu, footer, etc) is managed with Go's template system

- Constellix for Geo-DNS. This automatically sends users to the server closest to them by doing Geo-IP lookups on the nameservers

- The user-facing servers are dedicated 10 Gbps Leaseweb servers, stuffed to the brim with SSDs in RAID6 for caching. Each of these servers cost €1200 per month. The storage servers are from Hetzner's SX line.

- The OS is Ubuntu 20.04 server edition. I use Ubuntu over Debian because it ships with TCP BBR

- The API is written in plain Go. The only HTTP libraries I use are httprouter for routing and Gorilla Websockets

- The storage system is custom built to spread files over multiple servers. I call it pixelstore, it's not open source (yet)

- The database is ScyllaDB. I landed on this one after going through multiple other systems with severe bottlenecks. I started with MySQL which was limited to a single location, so other locations had high latency. Then I tried CockroachDB, but it kept hanging under the load no matter how much hardware I threw at it. ScyllaDB is very fast and relatively reliable.

- UptimeRobot for monitoring

- Mailgun for account e-mail verifications

Feel free to ask me more questions :-)

You mention that you have user-facing servers as well as storage servers. So do the user-facing servers act as reverse proxies for the storage servers, or do you simply serve a redirect?

I'd expect that the file access patterns are power-law distributions, i.e. recently uploaded files are requested more often than older files. If that's the case, can you use this property for sharding by having hot and cold storage servers?

How do you handle users uploading forbidden content? I see from another comment that you ban the usual types of illegal content. But in practice, do you manually review every mail you get on your abuse contact and take appropriate action? What's the most common type of complaint?

From a business perspective: How did you grow your site? I imagine the competition must be rough since file hosting is such a "simple" service.

> So do the user-facing servers act as reverse proxies for the storage servers, or do you simply serve a redirect?

Yes, my user-facing servers are proxying the files to the users.

> I'd expect that the file access patterns are power-law distributions

Exactly. On each server I have a sorted slice in-memory which keeps track of how often files are being requested. The most popular files are cached and files which drop out of the cache are moved to HDD storage servers in Helsinki. This way I can serve 10 Gbps of data to the users while only putting a 1 Gbps load on the storage nodes.

> How do you handle users uploading forbidden content?

I get a lot of abuse mails, mainly copyright violations. I have a mailserver which is hooked into pixeldrain which scans mails from common copyright offices and automatically blocks the files. For other types of abuse I have a report button on the download page. Users report content which breaks the rules and once the number of reports hits a certain threshold the file is blocked.

> From a business perspective: How did you grow your site?

Most file sharing sites are really terrible. Like almost unusable. It's pretty easy to beat the competition in UX. I just started using pixeldrain myself on reddit and other forums. In the beginning people complained in the comments about the ergonomics of the site and I listened carefully. Eventually when the kinks were worked out other people started using it too.

Thanks for satisfying my curiosity! Also, congrats on your success!

> Yes, my user-facing servers are proxying the files to the users.

I've never operated a service as large as yours, so take my question with a grain of salt: I'm wondering whether it would make sense to split off the actual file front-end servers from the user-facing servers (going for a redirect approach instead of proxying), since the requirements for serving the UI (low latency, low bandwidth) are so different from the file serving requirements (high bandwidth, but latency is not an issue). In theory, the traffic load from the files could negatively impact the UI latency leading to perceived sluggishness of the website. But perhaps that's not an issue in practice?

Since you mentioned elsewhere that you wanted to move to content delivery: What kind of content delivery do you have in mind? At the moment I can only think of either classic CDNs (but that's a few order of magnitudes larger) or ads (but that's an entirely different area).

Proxying the files has a number of benefits.

- The first is that I can have all my API endpoints under one domain. This simplifies downloading as you don't need to make a separate request to figure out where the file is stored.

- The storage servers that Hetzner sells only have 1 Gbps bandwidth. That runs out very quickly when a file goes viral. The 10 Gbps caching servers do a lot of heavy lifting here, this makes sure the disks in the storage nodes last longer.

- I can also decide to switch to a different storage system on my storage nodes when I want. I have been considering to deploy reed-solomon encoding for a while. That would make it impossible to link directly to a single storage server as a single file would also be distributed.

- Sending out this much data uses a lot of RAM for TCP send buffers. Installing this RAM on a single content delivery node is cheaper than installing it on every storage server.

To prevent the bandwidth load from affecting the UI speed I have a rate limiter on the download API which slows down when the uplink reaches 95% capacity. This way there is always some bandwidth left for the HTML and database communications.

With regards to content delivery: I want to use pixeldrain to serve static files. Nothing like the fancy site-wrapping tech that cloudflare uses. The idea is that users can have a file tree on pixeldrain somewhat like dropbox. They can copy the direct download link to that file and use it to embed videos, audio and pictures in their own websites. Because this is a lot simpler than other CDN services I can offer it at a very competitive price.

> That would make it impossible to link directly to a single storage server as a single file would also be distributed.

Check out https://github.com/chrislusf/seaweedfs/ implementation of reed solomon. Small files can still be served from 1 server.

It's also efficient for small files, which a image store requires.

I have been looking at seaweedfs for a while. I suffer from a pretty bad case of NIH Syndrome, so my gut feeling says I should implement it myself. But seaweed is such a good fit that I should probably just try it.

I especially want to know how well it deals with adding / removing servers, data loss and network instability. The beautiful thing with writing my own solution is that it takes at most 10 minutes to diagnose and fix a problem when it occurs.

I have the same syndrome. But I feel seaweedfs should be easy enough to be picked up. If you have any questions, just let me know.

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 :-)

You can contribute to it and learn it along the way. Pretty flexible.

Hi! I had never heard of your service, so I googled it and accidentally misspelled "Pixel" as I often do as "Pixle". The first result was a reddit thread and the second seemed to be a full-length rip of Becoming Royal that had some really malicious ads which were clickjacking and covering the content. Just thought you might like to know. :)

Thanks for letting me know. I suspect my advertising partner is doing some shady business on my site. I have been trying to catch them but I never seem to get the malicious ads myself, even when using a VPN from more eastern or southern nations.

Could you maybe send me a screenshot / screen capture of the ads and send them to support@pixeldrain.com? I'd really appreciate that.

I sent you an email. Domain is the same as my un here.

That page is the second organic result for "pixledrain" for me.

The url is https://pixeldrain.com/u/823R39Sc

And it is full of popups, redirects, etc. And maybe acting differently per-referer.

Do you happen to be using an iphone? The malicious ads seem to be targeting iphones specifically. I can't reproduce it myself but I have told my advertiser about it.

I have some leverage here since I'm one of their largest publishers.

Nope, Android. I tried reloading a few times, and the page is normal most of time. So it must be only when a specific ad runs?

Edit: Played around with it a bit. I think (not sure), some of the stuff is coming from this in the page source, near the bottom.

  <script type="text/javascript" src="//optyruntchan.com/400/4189877" data-cfasync="false" async="async"></script>

Note that is actually in the page, is NOT the ad, and couldn't have been injected by the ad.

It looks troublesome to me, as I don't see it on other similar pages on your site that also have ads.

Edit: Confirmed. Added "optyruntchan.com" to my local hosts file as The page still has the ad at the bottom, but all the popups, overlays, redirects, are gone.

It's not like pixeldrain has been hacked or anything. I have been serving ads for this company for almost a year. It's just that they decided to serve full screen ads all of a sudden without consulting me.

I have removed them completely for now. I'll just be operating at a loss until I find an alternative ;-(

Ah, okay, sorry. I didn't see that piece of javascript on any other user-created pixeldrain pages, and it isn't involved in the ad at the bottom/center of the page. So, it did seem out of place to me. I can't even tell where it would place an ad.

No problem. I base the ads I show on the size of the file that's being downloaded. Larger files cost more bandwidth so they get more intrusive ads. But I don't want the ads to be so intrusive that they drive users away of course.

Normally these ads would show up as little floating windows in the bottom right corner.

I took a look at the script, it looks _hella_ shady. Some sort of packing I've never seen.

Thanks for sharing these insight & very impressive stats!

Just few questions I have:

- What is your total infra cost? A cost split between storage & servers would be an awesome insight

- Since how long you have been running this service?

- How did you keep up with the infra cost before breaking even?


My content delivery servers cost me about €2000 per month. I experiment a lot with different providers to drive cost down here. My storage servers are €800 per month. For that money I get about 500 TB of usable capacity (all my servers run raidz2). And then I spend about €150 on database servers. My Constellix DNS bill is €50 per month, and Mailgun is €5.

So about €3000 / month worth of infrastructure.

I started working on pixeldrain in 2015 during lunch breaks at school. The original version was a Spring Boot app with MariaDB. I had a lot of performance problems here. My use case doesn't really fit in the CRUD API use case. I need tighter control over my connections and threads. That's why I switched to Go.

I run ads to pay for the servers. It's really hard to find advertisers for file sharing services because they don't want to run ads in controversial content, and that's what file sharing sites are mostly used for. I have to resort to working with some really shady companies. Because of this I balance my ads so that they generate just enough revenue to pay for the servers.

Eventually I would like to turn some profit though. That's why I'm trying to shift from file sharing to content delivery.

How do you keep yourself motivated to work on a product if it does not turn profit for years?

I'm hoping to find a way to make it profitable somehow. There must be something that I can sell to these millions of people who visit my site every day.

And I simply like the technical challenges it provides. I like optimizing and scaling systems and designing database schemas. I'm learning tons of stuff this way. If an opportunity provides itself to apply this knowledge I'll have it ready.

Pixeldrain as it's running right now could probably do 20 PB / month. But I have systems in mind which could take it to 100 PB / month at little additional cost.

Yeah! Do you want to do a blog for us at ScyllaDB? Would love to interview you. :D

Hit me up via email at peter@scylladb.com

That sounds interesting. I'll send you a mail tomorrow

Curious to learn more about CockroachDB's problems you had. They market themselves as a turn-key solution to globally distributed databases, it's worrying that you had a problem with that very use case. Thanks for the additional details!

Okay this is just my understanding of the issue. I'm not sure if it's 100% correct.

Cockroachdb slices up its tables in 16 MiB shards. These shards are distributed over three nodes, one master and two slaves. The master gets chosen with the raft protocol. The master is the only server which can write to the shard. For a write to happen all three replicas need to be synchronized, they do this by locking the entire shard whenever a query comes in that writes to a row in the shard.

The problem is that if the latency between the master and the slave node is too large, you are severely limited in how many queries can be executed. For example if you have one shard in the US and one in Europe there might be a latency of 150 - 200ms between them. This means you can only execute 5 queries per second. Any more requests that come in are queued. After a while the queue gets so long that incoming queries have to be dropped.

This implementation is great for consistency, but if you frequently need to run update queries on your rows it's not the right solution. You need eventual consistency like Scylla and Cassandra provide.

Good summation. Exactly. They are solving for different things. Cockroach is solving for consistency of a distributed database. Scylla is solving for performance of a distributed database.

For interested readers more can be found here:


Thank you for sharing!

very popular service in latam (colombia,peru,mexico,venezuela)

Definitely. Here's a screenshot from my Cloudflare analytics: https://pixeldrain.com/u/dt92pNgf

Most of my users are Vietnamese. Unfortunately bandwidth is very expensive there, so I have to serve all that traffic from Europe.

> Each of these servers cost €1200 per month

I see on Patreon that you're getting $275.43/month from supporters. How does that work out financially?

From the website:

> Pixeldrain is struggling to get by financially. Because anyone can upload anything it's hard to find reputable advertisers who want to advertise on pixeldrain. Every month the ad revenue just barely covers the bandwidth costs. If this continues I will have to resort to adding more shady ads, or reducing the file size and bandwidth limits. That's not something I would like to do.

The vast majority of my income is from ads. It's a 10:1 ratio. Patreon definitely helps, and I hope that it will get so far that I have to rely less on ads to keep the site running.

The nice thing about Patreon is that they do my taxes for me. When I receive my money the taxes have already been paid. I can put it in my accounting software as tax free money. Patreon's fees are high though, so if something else comes along I'll give that a shot too.

From the website:

> Pixeldrain is struggling to get by financially. Because anyone can upload anything it's hard to find reputable advertisers who want to advertise on pixeldrain. Every month the ad revenue just barely covers the bandwidth costs. If this continues I will have to resort to adding more shady ads, or reducing the file size and bandwidth limits. That's not something I would like to do

What does your revenue look like? It sounds like such a simple service that can basically maintain itself.

If anyone wants more of a deep dive on solo developer tech stacks, I have a podcast at https://runninginproduction.com/podcast/ with almost 100 episodes and 100 different guests. Every episode is a 60-90 minute unscripted podcast where we talk about how they built and deployed their app, what libraries they used, tech stack, lessons learned, etc.. There's also a skimmable list of tech stack tags, reference links and show notes.

Episodes are a mix of solo developers and organizations but based on having personally recorded and edited every episode my gut says about 30% of the episodes are solo devs and it's usually pointed out in the first few minutes of the show.

With that said, if you want to be on the show to chat about your tech stack let me know. There's a "become a guest" button in the nav bar to get the ball rolling.

Any episodes you may point out? Specifically tech on SaaS and the learning of how to build to scale. Or just general episodes you personally found fascinating

Hmm there's a lot of them. Most of the episodes are SAAS apps but I remember Dan from Real Python[0] in an earlier episode having a pretty rigorous set up for solo developing his platform. It gets a few million monthly page views. He happens to use Heroku tho, so that episode is pretty dev heavy vs ops.

The GoRails[1] episode is a good example of keeping it simple but killing it. It's just one dude who built a million dollar business hosting everything on a $20 a month DigitalOcean server, and the server itself hums along at a few percent load while having tens of thousands of members.

Jake from SongRender[2] is a solo SAAS app project for building audio visualizer videos with Node, it's not running at massive scale but he did everything himself -- including setting up blue / green deploys with Terraform.

Cory built a service to create and design placecards[3]. I remember this one focusing on keeping it simple while still being able to run a profitable SAAS app.

If you're looking for intergalactic crazy scale, an engineer from Dropbox[4] was on a few months ago but that's not a solo dev platform.

Another SAAS app and large scale deployment was Mux[5]. They handle billions of video API requests a month with a pretty small team.

It's hard to only recommend a few because often times you can get at least 1 nugget of information out of each episode and apply it back to your set up. One takeaway from a lot of solo dev projects is they just ship something and keep it simple until that stops working. You'd be surprised at how far you can go with 1 server, handling tens or hundreds of thousands of monthly visitors but still generate enough profit from your project to make it a full time income or at least be a nice chunk of side income.

[0]: https://runninginproduction.com/podcast/4-real-python-is-one...

[1]: https://runninginproduction.com/podcast/12-learn-ruby-on-rai...

[2]: https://runninginproduction.com/podcast/83-songrender-lets-y...

[3]: https://runninginproduction.com/podcast/39-place-card-me-let...

[4]: https://runninginproduction.com/podcast/82-dropbox-gives-you...

[5]: https://runninginproduction.com/podcast/31-mux-is-an-api-bas...

Incredible! Thanks for the rundown. Will playlist these and work through.

came here to suggest this. Great podcast!

Thanks a lot for listening.

Any recs?

I would say to start with the tech you are interested in. On the website you can select episodes based on tech (e.g. Laravel, Django, Elixir, etc.).

Hope this helps!

I taught myself to program to build https://comparedial.com/, a comparison website for phone contracts in the UK.

Front end: plain JavaScript

Back end: Node.js

Host: $10 DigitalOcean droplet

Web server: Nginx

SSL: Let's Encrypt with certbot

Proxy: Cloudflare

Database: Postgres

Caching: Redis

Indexing: MeiliSearch

I wanted to learn JavaScript and understand the fundamentals, so I used vanilla JavaScript for the front end without any framework (React, Vue, etc).

Initially, the comparison engine was slow, so I learnt about indexing and added MeiliSearch to the stack.

I try to keep it as simple as possible and only add what I need.

I plan on migrating to Next.js eventually - not because I need to, but because I think it will be a good learning experience. However, that's not my priority right now, and is probably an excuse for marketing/content procrastination!

Hey! This is brilliant!

Obviously you speak about the tech stack you use here, but your UX is absolutely perfect. I just used your product and got exactly what I wanted without even thinking. My brain didn't second-guess myself once. I didn't read anything superfluous - in fact I don't think I read anything at all. The search box and images of the phones did it all for me, and the autocomplete for search was perfect. I loved that only after I searched did it give me the option to refine (like size of model)

I usually use comparethemarket or something similar when shopping around, and it's a bit of a pain - though I only realised how much of a pain since using yours.

I don't know how much conscious thought and work you put into the UX - as you mainly talk about the tech - but it's great. Well done!

Thank you, your comment made my day!

I come from a design background. I didn't like the UI/UX of similar comparison sites, so my aim was to improve upon what's already out there. Glad to see someone noticed!

I went and tried out the site due to this comment, and wow you're right! It's a very nice user experience. Nothing more or less than exactly what's needed for the purpose. All nice and snappy too. I wish webshops used UX like this.

Hi. Are you using docker or any containerization technology with this stack or you've installed everything on the server.

Just so you know, on Firefox 92.0b7 the phone images won't load. Apparently the network request works fine, but when trying to view the image directly Firefox says that "The image <...> cannot be displayed because it contains errors.".

Thanks, I couldn't reproduce it with the stable build but I did with 92.0b7. Seems to be related to avif images and a bug in libheif. Trying to fix now.



this is fantastic- do you get an affiliate fee?

i'm looking a new phone and total cost of ownership might swing buying it through this site

where do you source the deals? is there an api?

Thank you. I do get an affiliate fee for each sale. Most retailers provide csv feeds when you join their affiliate program. Parsing and organising the data can be quite difficult as there is no uniform structure and most retailers provide bad/incomplete data. There are a lot of weird edge cases I need to work around.

Hey, great service! Just FYI (you probably already know tho):

- some links automatically close after loading (e.g. the first link for the iPhone 12). Maybe the deal doesn't exist anymore?

- some sites seem to strip your affiliate id from the URL (e.g. the second link for the iPhone 12, metrofone.co.uk)


Some ad blockers are very aggressive at blocking affiliate links. uBlock Origin blocks all track.webgains.com links and even closes the tab if there's a redirect, which is probably what is happening with the first link. I'm adding a feature that will call an ajax request first, and if it's blocked then I will simply redirect to an untracked link. Unfortunately I will lose potential commission this way, but at least the website will still work for everyone. It should hopefully work if you disable your adblocker.

As for the Metrofone link, it's just a redirect on their part. I did a curl request to check this:

> GET /pclick.php?p=29805977293&a=119158&m=6506 HTTP/1.1

> Host: www.awin1.com

> GET /basket/add/contract/iphone-12-5g-128gb-black/three-100gb-new-24-month-14.00/free-delivery?source=awin&awc=6506_1629914525_c508aa142e90213248adbdee4b995550&utm_source=CompareDial&utm_medium=AWIN&utm_campaign=CompareDial HTTP/2

> Host: www.metrofone.co.uk

> GET /contract-phone-deals/iphone-12-5g-128gb-black?basketRedirect=true HTTP/2

> Host: www.metrofone.co.uk

There are a lot of weird edge cases I need to work around.

This sounds like a potentially more valuable product to me. Any time I find myself doing integration work like that in an e-commerce setting I think "hm, could this be the Stripe of X".

Yep, I've definitely thought about it. There's only one other company in the UK that does this. They supply their feed/API as a service to nearly all the big comparison sites.

do you advertise? or get most of your leads from SEO?

Getting very close in my large side projects for everything to just be Go + PostgreSQL. Go is the API, business logic, and very soon the entire web layer. This is all on Linode, there are no containers I just put a binary on an LTS Ubuntu and then iptables to just those ports (with SSH configured in their Cloud Firewall to only be possible from my home IP).

I have a long term itch that I want to scratch soon, whether it's possible to dispose of PostgreSQL and just store my data in an S3 compatible object store and yet still have a SQL interface to it. https://blevesearch.com/ is on my list of things to look into for this. I'd already structured the PostgreSQL schema with the possibility of putting individual tables into an object store, but as my databases grow I'm keen to avoid becoming a DBA and I don't use most PostgreSQL features so if I have the chance to reduce my tech stack to just Go I may take it.

What I've learned from having a mix of Python + Django + some NPM... bitrot and maintaining dependencies is a debt that you have to start paying way too soon. Originally only the API was in Go, but that is the one part that over years has required virtually no debt paydown due to the language, environment, dependencies. You can leave a Go application for 8 years and all you need do is compile it to the latest Go and everything works perfectly... I can't even run or upgrade Python apps from half that time ago without major work to bring it up to date. As the side projects proliferated or grew, it is less overall effort for me to rewrite in Go than maintain everything else.

Opinion: Don’t put your business data in s3 objects!

It can work if all you will ever need is a key value store, but as soon as you need SQL-like queries (joins, filtering, transactions) you will be stuck reimplementing a sql engine in your app code.

I recommend to try SQLite with some kind of replication (either Linode disk snapshots, Litestream etc).

Having your state observable and local to your application instead of a slow http hop away makes development much easier.

Athena is a bad tool that if you have too much data or your queries take too long will just error out and give you empty results, and charge you for the privilege. It's cheaper and less pain to host your own Presto if you need it.

How much is too much data? It depends. On things you won't be told. Varies day to day. Totally random.

> you will be stuck reimplementing a sql engine in your app code.

Only if you're intent on keeping the s3-only architecture when it no longer makes sense, and the transition to SQL need need not be hard if you've been disciplined about your data structures from the get go.

I've been part of a transition from s3 only to s3/sql when business requirements changed, it only took us a week to set up a db, set up a workflow manager to insert necessary data into the db when something uploaded to s3, and ran some batch jobs for data that already existed. Total data in s3 was ~1pb.

IMO it's all about whether your problem space fits well with s3-only, and sometimes it does!

+1 for SQLite. You might take a look at https://github.com/rqlite/rqlite if you really need replication. SQLite can go pretty far on its own though.

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


How do you handle DB interactions in Go? I've been interested in how people choose between ORMs and hand written wrappers and how they structure them recently.

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 (it's old, but it's also OSS so I can show you)...

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.

Is there a way to write and import the queries from a SQL file in Go? Like HugSQL (Clojure) or PugSQL (Python).

To benefit from the SQL tooling (syntax highlighting, autocomplete and so on).

Yes, and it's super easy to do nowdays with embed since Go 1.16 https://blog.carlmjohnson.net/post/2021/how-to-use-go-embed/

I run a handful of dedicated PC game servers for a small community of gamers. https://noobshack.com and https://reulan.com

What is your tech stack?

- Frontend (JavaScript, NextJS)

- API (Golang)

- Observability (Honeycomb.io - for events, k8s metrics, visual data analysis)

- Infrastructure Hosting (Kubernetes - container platform to run it all, in my case Google Kubernetes Engine)

- Deployment (Terraform - all deploy components are written in HCL)

- TLS (Let's Encrypt)

Why did you choose it?

I wanted to have a minimal set of tools to manage my infrastructure, with the varied workloads of (API, game server, website, etc.) building containers and running them on the Kubernetes platform made it a one stop shop for storage, network and compute uses.

Additionally on the deployment side Terraform providers and in some cases modules were already available for me to use for bootstrapping specific infra components I am interested in.

Do you think your choices had any impact on your success?

It's allowed me to create a large amount of boilerplate, so I'm at a good point if I wanted to add more servers of different types it a relatively easy change compared to how I managed it all manually years ago.

This side project has allowed me to develop a technological skillset that definitely have helped me critically think in a software development career route.

Knowledge management for organization (Confluence/Notion competitor) https://dokkument.com

Backend: Django + Django Rest Framework + Celery + Postgres

Frontend: Vanilla Js + prosemirror

Deployment: Manually on rented servers

Picked that because this is probably the fastest way to code for me, no bullshit. I know that if I add any new tech that will slow me down, because I'll have to learn and master it and that takes a lot of time.

I don't think that has any impact on my success at all. Customers don't care about the stack, the only thing that it impacts is development speed. And this is not a significant factor. The most important thing in Saas B2B is sales skills

I have a pretty basic Flask boilerplate I have used, but have been very curious about Django. It would probably be a better option for me in some cases.

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

- Go: mail server and anything that isn't user facing or doesn't involve rending HTML. Statically type to reduce bug, performance to cut cost, this is the core of business.

- React Native: for our (upcoming) mobile app so I can share code for both of android/ios

I think the ability to ship out feature fast is important to keep user engage. And with the performance of Go I can keep cost low. https://hanami.run currently handles about 50K domains and processes 10 email per second and the entire infrastructure is ~ $100 per month including redundancy.

Nice service!

You may want to hire a native English speaker to check the text on your website though, it's full of errors and odd wording.

I'll take a look if you want, op. Native speaker, been writing proofreading and translating for a long time. Leave a comment here and I can get in touch.

https://boxy-svg.com - vector graphics editor similar to Inkscape and Adobe Illustrator.

Both client- and server-side code is written with vanilla JavaScript. Since I'm targeting only Electron and modern Chromium-based browsers I can use latest web technologies without any transpilers or preprocessors. I'm using mostly raw DOM APIs without any abstraction layers.

Third-party services:

- Firebase (database, storage, hosting, cloud functions)

- Paddle (payments, taxes)

- Algolia (instant search)

- ProtonMail (regular emails)

- SendGrid (transactional emails)

I have been using Firebase, Paddle and Algolia for several years now. So far I had zero problems with them and the overall experience was great (intuitive dashboards, good documentation, clean APIs).

I only wish there was a service that would allow me to easily build Electron packages for multiple operating systems and architectures - currently it is a mess that requires multiple virtual machines with a ton of dependencies.

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?

Thanks, I will check it out. I didn't know GitHub Actions could be configured to run on proprietary operating systems.

Hi, I'm the author of the repo. 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/

I'm using electron-builder too. Things get more complicated when you want to publish your app on different app stores.

I was unable to build a Snap Store package for arm on an amd64 machine. Canonical provides their own remote build service, but proprietary projects can't use it yet.

In order to build a package for distribution on the Mac App Store I have to use macOS with XCode installed and signing certificates stored in the system keychain. Uploading the package to the app store also must be done with macOS-specific tools. At least it is possible to build multi-arch packages, so I don't need two separate machines as it is the case with snaps.

Windows 10 with Windows SDK is required to build an appx package for distribution on the Microsoft Store.

Finally! one that can import PDFs, a must have for tuning. For example, "Print to PDF" from the browser and import it in an editable format.


My question, as you made it a PWA, why bother with Electron?


BTW, I bet you have it tasked, but having a shortcut profile selector with AI and Inkscape ones would help.

> Finally! one that can import PDFs, a must have for tuning. For example, "Print to PDF" from the browser and import it in an editable format.

To be honest Boxy SVG is not the best tool for manipulating PDFs. It should be able to import most PDF files as it is using Mozilla's PDF.js library under the hood, but once you import the file you have to deal with limitations of the SVG format such as lack of support for multi-page documents, flowed texts and forms.

> My question, as you made it a PWA, why bother with Electron?

Electron-based apps feel much more native than PWAs on macOS, for example you can make the app use native menubar and tabs. The gap between PWAs and Electron/native apps is probably going to be closed at some point in the future: https://fugu-tracker.web.app/

> BTW, I bet you have it tasked, but having a shortcut profile selector with AI and Inkscape ones would help.

I will try to implement this functionality later this year, it is tracked on https://boxy-svg.com/ideas/42/keyboard-shortcuts-presets

Thanks for the reply. I imported a PDF with forms and it drew them fine. In Inkscape I also have to clear the kernings, and reflow. It's not perfect, but it's a good starting point. Figma and XD can't import PDFs at all.

Is Firefox just too far different from Chrome to support. I have become pretty anti-Chrome lately.

Last time I checked Firefox didn't support Native File System API, Constructable Stylesheets API and HTML Dialog API which are used extensively by Boxy SVG.

Take payments in browser extensions: https://extensionpay.com

- $5/month Digital Ocean server

- HTTP server: pm2 / Node / Express

- Database: SQLite (because it's fast and needs fewer resources and less configuration than others)

- Front/backend - custom full-stack Svelte framework.

- Analytics: GA

- Email: Mailgun

- Uptime monitoring: Nine9s (https://nine9s.cloud/ from another solo dev I believe)

The Svelte framework I made is really cool. It makes it really easy to have server-rendered pages (for search engines and fast initial page load), pre-compiled static CSS, code-splitting per page, and automatically generated JSON APIs per page that re-render the Svelte component, as well as lets me use Svelte on the front-end which makes development much easier for me. Example code here: https://github.com/Glench/full-stack-svelte-prototype/

The tech stack has basically no effect on success as far as I can tell except that it's fast for me to develop.

This is pretty good. I like the concept where api and ui is in the same file. Different from sapper and nextjs but pretty interesting.

Thanks! Yeah, I wanted a way to simplify/unify the front and back-ends while retaining flexibility to implement anything I need to. And of course it needs to be fast and have a small bundle size (thanks Svelte!). It's pretty close to SvelteKit with a few more assumptions baked in.

Some people balk at having both back and front-end code in the same file but I like it since most of the time the code for both needs to be pretty tightly-woven in my experience. Also you can always put the back-end code in a separate file and import it for cleanliness :)

https://recordwise.ch - helping founders incorporate in Switzerland:

- Django/Python

- SQLite

- Celery and Redis for task queues

- Bootstrap4

- jQuery

- Sentry for error tracking

- Stripe for payments

- EmailOctopus for newsletter

- SendGrid for transactional emails

- NameCheap for the domain

- Linode for hosting

Running costs are USD 7/month for Linode + USD 15/year for the domain. SendGrid is currently free through the Twilio Startup Program.

Why did I choose it?

I am a lawyer and startet to learn how to code from scratch.

Python was being recommended because it is easy to learn. So I chose that.

Further, there are many Python/Django tutorials available online and I was always able to find my answers online. That definitely helped me to keep going and not give up.

Hey, is this service open for non-Swiss residents? If yes, is there an English version of the website available? Thank you. :)

The service is aimed at founders domiciled in Switzerland; in principle, formation by foreign founders is also possible. However, it is mandatory that the company is represented by a person domiciled in Switzerland. This can be a managing director (GmbH) or a member of the board of directors (AG).

For capacity reasons (company of one) and due to my focus towards Swiss founders, the site is currently only available in German.

Very nice UI design and colors. How'd you design the jumbotron/blue design at the top?

My app is https://bioviz-studio.com, a web-based tool to create beautiful video visualizations of molecular structures. App itself is at https://app.bioviz-studio.com.

Front end: Vue, vuetify, vuex, NGL, three.js/webgl, d3.js, 100% typescript, yarn, webpack Back end: node.js, express, Firebase, GCE, Blender, ffmpeg, docker, CUDA

Why? Vue for pretty UI & ease of coding, NGL for beautiful molecular graphics, Firebase because it makes getting from 0 to 1 easy, Blender because of Cycles renderer & scriptability.

Have choices impacted success? Definitely! Faster iteration leads to better UX, good architecture leads to stronger foundation, and standard tech means I can on-board a contractor when needed.

This looks great, congrats!

Since academic researchers are your customers, would you mind sharing a few tips on how to get your product in front of academic staff?

I'd assume the university department has to approve this expense, or do researchers pay out of their own pocket to avoid budget justification?

Hi, I'm currently a postdoc in a large NA academic research group working on molecular problems.

I haven't use bioviz (very cool though!) but it would be paid the same as journal open access fees (which can cost 1000s of dollars and are paid by the authors), through grants. The individual academics usually have full control of their grant money. For large purchases (here above 8000$ or so) the university asks for a competitive tender process or proof that only one vendor exists.

Very few research purchases require departement approval, and physical science professors are pretty used to spending large amount of money on software and equipment. For example, I'm currently working with two programs for which we pay about 20k$ in license fees a year.

I give significant academic discounts, so researchers can typically pay out of pocket. As for how to get in front of staff: all the old fashioned ways. Ads, content marketing, attend conferences (hard during COVID), give talks.

The preview is amazing! How many customers you had so far?

This is amazing


I turn existing websites into apps at https://webtoapp.design

I went with Flask (python) + Bootstrap for my website.

The apps are created in Flutter, which was a great choice looking back on it. This allows me to have 1 codebase for both Android & iOS apps (most customers want both). If developing an app for just Android would be 100% effort, developing an app for Android and iOS with Flutter is around 130% effort I'd say. Those additional 30% mostly come from inconsistencies in Flutter between Android & iOS and from desired differences between the platforms, e.g. Material vs Cupertino design.

I developed native Android apps before and now I'd even use Flutter if I wanted to just create an ordinary Android app. It's just so much nicer to use in my opinion.

Summary: Flutter was a great choice, Flask is fine too, nothing to complain about there.

Any particular reason for choosing Flutter over React Native?

Also seems like a very low price tag, I guess you're working with cheaper developers, have some automation in place and/or take on simple websites? Or maybe I overestimate the difficulty of doing this?

$850 for both android + ios is about a day's worth of work as a medium paid contractor in the U.S, and I imagine it takes longer than that to do this.

I hadn't worked with React or javascript before this project, but did a small Flutter project in university. I found dart easy to pick up because it's quite similar to Java, which I've used quite a bit. Also I find that there's more progress being made with Flutter (with Google as a backer), than with React native. But I might be in a bubble there.

Creating the apps is mostly automated and the apps use webviews along with a few native components. Without webviews and automation this would never be possible at that price point, you're totally right.

There's lots of competitors that offer pure webview apps at ridiculous prices (I've seen $5 even). You can't publish those in the app store though (even if you manage to submit it for review without any help). So native components and help with publishing the apps are quite essential. And that's where a lot of the involved effort lies: communicating and helping customers.

Working on improving that day by day though :)

How long did you spend on the Droste effect on your homepage? :D

Haha i spent like 3 days on that image in total. The starting point of the image is from undraw.co (i think it's called "web app"). First I wanted to use recursion but in the end it was a lot easier to just make a simple loop to nest the image 3 times or so (beyond that it just unnecessarily increases the DOM size without a big visual difference)

Also make sure to hover the image, it's animated! I love how the nested images get animated too.

All in all it was fun to work on and I learned a lot about SVG while I had nothing super important to do :)

It sparked joy, I like it!

Wow sounds fun, the idea for the website sounds fun as well and congrats on the launch.

Small suggestion, could you not automatically display the pricing according to the location of the IP address of the user. My IP is being guessed as its from Indonesia and I see pricing that I am unable to read. And I don't see an easy way to look at the pricing in a more familiar currency.

Far too many websites do this, its so annoying :(

Thanks for the feedback! That makes sense, thanks for letting me know. I fetch the prices via an API from my payment processor, which does the guessing.

I'll add it to my todo list to offer a manual override :)

.lifting-card {height: 100%}

If you like the column heights aligned on /convert/appdetails.

Thanks for the tip! I might use that, need to think about a good way to deal with the additional white space in the card :)

Is most of the design just bootstrap from scratch? Very nice

Thank you! Yes, it's almost exclusively bootstrap :)

I built a platform for sharing git repositories: https://gitfront.io

What is your tech stack?

  Backend: Golang
  Frontend: HTML, Plain JavaScript and CSS
  Database: PostgreSQL and object storage
I run everything on a single dedicated server on a VM. Services are deployed as containers and managed using HashiCorp Nomad.

On the backend there is a custom task queue which delegates work to worker instances. Repositories are rendered as static HTML and stored on object storage. As each repository is stored as a single object there is also a custom proxy that allows serving individual files from objects. All of this is written in Go.

The frontend currently consists of a landing page without any JavaScript and a web app which builds most elements using JavaScript. Everything is styled by hand using CSS.

Why did you choose it?

I chose to use technologies that would allow me to maintain everything years from now without having to rewrite a lot of code. I wanted to have something that would run fast, work reliably, have a small number of dependencies and that would allow me to develop at a reasonable pace.

As for the infrastructure, I wanted increased availability, more security and control and lower costs.

Do you think your choices had any impact on your success?

Yes, but for me success is being able to learn, delight customers and to satisfy my own standards on how things should be done.

I dont run a company, but I am very pleased to see:

* Many founders are using Digital Ocean or Linode or something similar/simple, and not complicated k8s/aws setups

* Many founders are using boring but stable tech like python/django or rails or similar for the backend, and vanilla js for the frontend

Looks like where it matters, ie, shipping something, most are using boring but stable tech instead of Fad-of-the-week

I don't get why you are being downvoted, I am happy to see similar phenomenons as well.

I am using similar stack for my own profitable web apps as well.

And Go is considered boring but stable!

My principle for https://phish.report (a tool for semi-automating the reporting of phishing sites) is: do as much statically or server side rendered as possible.

Deployment: Docker Compose. It's great to just set a DOCKER_HOST environment variable and I can deploy to any server with Docker installed.

Backend: a Go service. Could be any language really but that's what I know. Just takes requests, does some business logic and returns HTML templates.

Frontend: I'm not a frontend dev so I try to avoid it as much as possible. For UI, I use Bulma (a pretty comprehensive bunch of CSS components), with a tiny sprinkling of vanilla JS for small client-side animations (e.g. burger menu toggles). 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).

> do as much statically or server side rendered as possible

Love this - a terrific cheat code!

I make a lot of prototypes along with maintaining production systems. A lot of the projects have to do with ML/NLP, which basically means I have to chose python as a core backend language. Which is great, I love python. My core production system and every new prototype is: - Django + PostgreSQL - Celery + redis - for long-running tasks - React - GraphQL - Terraform + Cloud-init to provision the infrastructure

All quite boring and stable, the way it should be :)

I have a longer writeup, along with my reasoning for the technologies I chose: https://kubami.com/articles/my-modern-saas-software-stack/

How time flies... React, GraphQL and Terraform are considered boring and stable.

Fair enough for the GraphQL.

However I'd say React is so widely use I'd say it is boring and stable (as the frontend tech goes)

Terraform, well, what is the alternative? Clicking through web interfaces, or bash scripting the cloud-provider CLIs.

Terraform hit 1.0 quite recently, so let's wait for all that boring and stable please, otherwise the words lose meaning...

50+ sysadmin told me Ansible is the rock-solid.

Could you share what python libraries you use in your projects for ML and NLP?

Some of the libraries I use

- nltk - preprocessing

- spacy - preprocessing, entity recognition, part of speech recognition

- gensim - Similarity and clustering

- pytorch - ML model building

Ruby on Rails, with a couple React bits in there for “islands of interactivity”. Coupled with old-skool Heroku it lets me punch above my weight class, iterate like you would not believe, and focus on the business.

I only recently moved to Rails though. Before that I was full stack TypeScript, which was cool and I still miss the static types, but it’s worth going without them.

Yeah I was evaluating back-end tech stack for a recent side project, most of my work these days is in TypeScript or C++, so a large part of me wanted to have types and go with a TypeScript/Node stack... but on further evaluation, both Django and Rails let you do so much on the back end with so little code, just by following their conventions and using off-the-shelf libraries, that I'm willing to trade off types in exchange for much less code to maintain (and easy Google-ability of problems).

Node is great, but I didn't come across any frameworks that rival Django or Rails in terms of maturity, and for a side project with no special requirements in terms of scalability etc., I'm not really interested in piecing together multiple libraries or writing a lot of code myself.

I actually ended up building the back-end twice lol - I was looking for the opportunity to try out GraphQL (overkill really, and it goes against what I said about keeping things simple, but I felt it was a good opportunity to try it) and ended up hitting some big performance issues with Django + Graphene – not sure how much of it was my fault vs. Python's GraphQL being slow, but in the end I rewrote the API in Rails + ruby-graphql in half a day and the performance is 5-10x faster there.

Having had the opportunity to build the same thing in them both, I'd say that Django's ORM is quite a lot better (I prefer the Django way of "update the model and the ORM will work out what migrations you need" vs Rails where you explicitly create migrations) and I prefer the Python language (simpler syntax, Ruby has so many ways to express the same thing); but Rails is probably actually quicker to work with and the quality of the Gems available for common stuff seems better than the Django equivalents.

Ultimately both Rails and Django let you get a lot done with not much code and are pretty similar conceptually – I'm impressed with both!

I completely agree about the Django ORM. I used Prisma for a couple projects and that sold the idea of "changing the model and generating the migrations" for me. Now, it feels a bit silly to explicitly define migrations. I'd love to hear some pros of the Rails/Phoenix way though.

Same, I am sure they went with that way for a reason (or perhaps it's just technically easier to implement?). I also found things like many-to-many relationships were trivial in Django, much more manual in Rails.

I run a Reddit Post Automation tool called Delay for Reddit: https://www.delayforreddit.com

The tech stack is:

- Ruby on Rails

- Postgres

- Redis

- Hosted on Heroku

I choose this stack because it was the technologies I was most familiar. Also, I knew it could solve the problems the business faced.

I do not think Tech Stack is the most important component to my success. Its important to choose a Stack which can solve the business's problems first and second having familiarity with the technology can make you more agile.

Spending time on SEO, marketing and advertising is where I can attribute most of my success.

CodeApprove is a better code review tool for teams on GitHub: https://codeapprove.com

The frontend is Vue 2.0 and TailwindCSS. No other major libraries besides the Vue standards (router, store, etc).

The site is delivered by Firebase Hosting and the backend is all Firebase (Firestore, Auth, Storage and Cloud Functions)

I absolutely love this stack. It’s so simple to run and requires no maintenance. Plus the fixed cost is $0. To deploy I use manually-triggered GitHub Actions workflows.

The best part of the whole thing is the local dev experience. With the Vue CLI and the Firebase Emulators I can run my entire stack locally with hot reload across frontend and backend. When I push to production I am confident.

CodeApprove looks interesting. Consider changing the text in between your <title> tags to "CodeApprove - Better code review for teams on GitHub" so I know what the heck it is and can easily find it again when searching my bookmarks.

Still haven't finished shipping the product, but the newest thing I've been working on is a site/app for analysing asset prices (stocks, commodities, land/homes).

> What is your tech stack?

Ruby, Rails, Postgres, Sidekiq, Redis, Hotwire, Stimulus, TailwindCSS and Echarts for visualizations. Heroku hosting because I don't want to deal with devops and hosting costs are the least of my worries (data's expensive these days!).

> Why did you choose it?

My background is in economics, trading and business (among other things). I picked a tech stack that makes the parts I have the least experience with (web development) easy and the Rails ecosystem really can't be beat. The 'default' Rails tech stack is also nicely curated and seems to just work.

For the parts I do know very well (economics, financial analysis) Ruby is a great language. Python/R have a few more packages (and I've used R quite a bit) but I'm rolling my own business logic anyway and I prefer Ruby as a language to both.

> Do you think your choices had any impact on your success?

Progress has been surprisingly quick so hopefully!

Minimal blogging platform https://mataroa.blog/

* Django for backend

* Django management commands + cron for recurring tasks

* Django templates for frontend

* Very few lines of vanilla JS


* Caddy for reverse proxy + SSL generation

* Let’s encrypt for wildcard SSL

* Hetzner instance as server

* Deployment through SSH + git with a simple script: https://git.sr.ht/~sirodoht/mataroa/tree/master/item/deploy....

I run https://takehome.io and https://clubman.app on the same stack.

Backend in Go with a simple MVC pattern, no framework. All data in Postgres. Front end is server rendered HTML using MaterializeCSS for components, migrating to TailwindUI.

Hosted on GCP using Cloud Run, deployed using the gcloud cli orchestrated in a makefile. Database is a Cloud SQL instance.

Google Cloud Tasks for the message queue. Amazon SES for transactional emails and S3 for blob storage.

I have written a LOT of single page front ends over the years. I think the decision to go back to plain HTML templating has made it dramatically faster to add features. Same for the switch from microservices back to a well constructed monolith. I can just get right down to the feature I want to build or the bug I need to fix without wrestling the plumbing.

Go has also been wonderful for keeping things simple. I was always tempted to make things “clever” in nodejs.

how did you find customers for your products?

Takehome was a mixture of blogging, networking and Google ads. It’s a slow burn on customer acquisition but the companies that use it stick for years.

Clubman is a lot of word of mouth through the community. Also some success from Facebook and Google ads. I expected to have success with approaching clubs directly but that’s been a washout so far. Once the industry recovers after COVID I’m planning to roll out a referral system.

Django, doit, tailwind, vuejs with vite, postgres, redis, poetry, git and ubuntu.

I've tried many alternatives but every time things are just slower to dev.

This stack has a great balance between integration and flexibility. The only things that matches the django ecosystem is the rail/symfony ones, but ruby and php outside the web are limited. Js has diversity but integration is seriously lacking. Anything else is too low level which is not a good cost/benefit ratio for me.

Vite, vue and tailwind makes front dev fun again, postgres and redis can deal with everything without tuning up to millions of users and ubuntu and git are just easier to find tutorials for.

The impact is huge as I can actually focus on my value proposition for my client. They can ask me to add a cms, a weird service auth or some messed up ftp pdf generation workflow and I can leverage existing libs 80% of the way, with just enough custom to charge premium.

I end up twice faster, 3 times cheapers than my competition and yet my hour billing is very good and my stress at sea level.

For my side company I design and build audio electronics for DJs.


Here is my tools & workflow:


Professional CAD tools are not cheap, so I'm basically breaking even. I'm mainly doing it for the love it -- I love to create things to inspire others to also create.

Luckily I have a full time job to keep me going :)

Tell me about it, I also use some professional CAD tools (Revit) but on my day job.

I hate to say it, but maybe no one would really care if you would pirate it? It just doesn't seem right to spend so much money on such expensive software that is probably that expensive due to big business using it and no competition.

Looking at the workflow I guess it's SOLIDWORKS.

I used to pirate everything, but is it a solution? In the past perhaps, I wanted to use expensive software, I was experimenting, didn't have the means to buy a license, and there weren't many alternatives to mainstream software, either proprietary or free. But nowadays things has changed for the better, so I try to build my workflow around what I can afford.

On a tangent, in my opinion, the advent of crazy cloud subscriptions have stimulated the community to find alternatives and promote more sustainable software. GIMP or Blender wouldn't be what they are today if everyone kept easy pirating Photoshop or Maya for example.

To op, if SOLIDWORKS is draining your pockets look at these alternatives[1], it's not my field, I can't say anything about them.

[1] https://expertratings.net/solidworks-for-free-and-alternativ...

> I used to pirate everything, but is it a solution?

Well it could be a solution if you are just starting out. CAD is very complex stuff so it's not likely that there will be a good open source replacement to Revit for example any time soon.

I really don't want to pirate software in general but if the license is like $2500 / yearly it's such a ridicolous amount that there is no good options left.

I've managed to find some middle ground by taking advantage of short term licenses, i.e. renting software for a couple of months to get the work done after balking at four to five-digit sums to own perpetual licenses. Still, would be nice to own the software outright.

Appreciate the links! Indeed, we're seeing OSS tooling getting better and better!

I built up my CAD and rendering chops with the free tier of fusion360. Legit and cheap way to learn the basics.

Did you take a look at Shapr3D?

Wow thanks for the heads up on Shapr3D, definitely going to check it out :)

I am buiding a Purchasing system for construction comapanies ( I own one and it's test subject atm).

The sofware focus on automating tasks other systems don't, document decisions and an extremelly tight link between the budget and the real and projected expenses.

Construction is a very local dependent business so good systems from other countries didn't adapt really well here. Hence the effort to make our own. I am the solo dev.

Stack is

* Backend: Quarkus.io , Lombok and Java

* Frontend: React, Ant Design and Typescript

* Persistentency: Postgres

* Automatic Backup: S3 and custom Postgres container

* Platform: Civo and K3s for PROO

* Security: Keycloak

* CI/CD: Github actions and Cloudflare pages

* Local Env: Docker for local.

* Ide:IntelliJ

Why did I Chose it: * Java and Quarkus: because I have 20 years of experience with Java, it's rock solid, performance is great and I am fast with it.

* Civo and K3s: Because I love k8s but it's too expensive to run for my operation.

* Postgres: It's just great.

* React and Ant Design: I like React approach, I have used Angular and Backbone before and react is awy better. Ant Design is just awesome, great looking components and they work 99% of the time, documentation is also very good.

* Keycloack: because makes me faster, implementing security by your self is always a bad idea unless you are a pro, which I am not. Keycloak let's me focus on the business.

* Github actions: Simple, powerful, free!

* Cloudflare pages: Simple, powerful, free!

Do you think your choices had any impact on your success?

Not there yet, let's talk in 3 years. But we are using the system at my company already and locally it's been a great sucess, improved our work by a mile, people are happy using it even with some bugs, we are already saving money and identifying places where we didn't have a good budget to improve next time. We also are not afraid of people leaving anymore, since with the system their replacements can pickup where they left and continue to work on Day 1 and buy stuff maintaining the time requirements, that was the best part.

https://flat.social - a webapp for building playful virtual spaces for meetings and socials. (demo here: https://www.youtube.com/watch?v=JO9o1DobMzs)

Front-end: Typescript, Next.js, Styled Components

Back-end: Typescript, Node.js, Express, Socket.io, Express Audio/video: Mediasoup

Deployment: Github workflows, Docker

Analytics: GA, Mixpanel, Sentry

Hosting: A couple CPU-optimised droplets from Digital Ocean, Firebase

Next.js + Styled Components was a really good choice. When time is limited, reducing any silly roadblocks is really important.

Mediasoup is pretty raw when it comes to setting up basics of video conferencing but allows for a much higher level of customisability and optimising final operational cost. It was a world of pain initially (not many solid examples of how to use it) but worth it at the end.

> Do you think your choices had any impact on your success?

Maybe not on success (reality will verify that in the coming months) but on avoiding any unnecessary failure on the way. I worked and interacted with startups in the past that would get excited and jump on using newest tech (the very first version of Swift or early version of React Native for example...) just to end up battling the unknowns after a couple weeks / months. I try to keep the product fun but keeping the tech stack boring and predictable.

This is neat! Two questions for you: - how does firebase fit into your stack? I’ve looked at them in the past but their pricing potentially changing makes me nervous

- how many concurrent websocket connectione are you able to support per server? Anecdotally, it seems socket.io struggles to scale beyond 10k or so


> how does firebase fit into your stack?

The usage is quite minimal, mostly for authentication and storing basic CRUD data. All of the real-time data flies through the servers mostly without being persisted. Firebase indeed gets quite expensive at scale. I'm cheap at heart so I avoid it when I can.

> how many concurrent websocket connections are you able to support per server?

That is a very good question. Nevertheless, I don't think that concurrent WebSocket connections are the bottleneck at the moment. Audio/video and game physics seem to be the biggest drain on the CPU usage which means before I'd get to max WebSocket connections, the machine would be overloaded before.

I did however have a problem though with throughput of a Socket.io server. A basic setup of Socket.io runs on a single thread which means it's easy to clog your event loop when you have a lot of concurrent guests in the same room. I managed to workaround this one quite well with a bunch of hacks - from packet sizes to designing features in a more networking-friendly way.

I tried it few times, I love it and inside the demo room you can find Pawel, a super interesting person.

Nowadays I'm using Django + Unpoly + tailwind. I just discovered a few days ago slippers which is just what I was missing. Also using Huey for background jobs, whitenoise for assets, esbuild for building js. And finally dokku to deploy (and just doing daily VM images for backup)



I'm currently building namy.ai (AI domain name generator) solo, and here's my tech stack:


- Python for the backend. Just a great, batteries included language that lets me do what I want fast and doesn't get in my way.

- Flask: a web framework for Python. There's Django too, but Django is no fun. Flask is small and exactly what I want.

- Pytorch: My DL framework of choice. Again, understandable, makes sense, and fastly iterable. No archaic nonsense (looking at you Tensorflow). Also of course pandas, numpy, scikit etc...

- Scrapy: pretty powerful scraping library

- PostgreSQL: classic

FRONTEND: I'm not a frontend guy, but it's a necessity, so I go with the simplest.

- Bootstrap: Lots of templates, easy to understand. I'm not entirely happy with it though; I wanted to try Tailwind.css for my next project

- Simple, custom Javascript. No complex frameworks. I barely understand JS; I don't want to use a framework until I feel comfortable with bare JS.


- Heroku: a bit expensive but so simple. Removes all the hassle. I don't think deployment is fun, so Heroku is my friend.

- Google Analytics: I don't want a lot of analytics, and GA just works. I do want to move to a more privacy friendly choice.

- Uptimerobot for detecting problems. Simple, works, free.

With this tech stack I feel really comfortable, I can iterate on all layers, and I really do have fun developing on it. I can shoot out an MVP for most projects in a week.

Here's some stuff I've built with this:

https://www.namy.ai (still building it, especially improving the AI model right now)



My biggest gripe in this tech stack is bootstrap, but I think despite of that and me not being a frontend engineer I still managed to give the sites a bit of a non-generic flair.

Happy to answer any comments!

A little bit of feedback on namy.ai

Small improvement: filter by type of domain (.com, .ai, etc)

Big improvement: filter false positives, it showed some sites as available, but they were taken (those were sites with English dictionary names .com , which I think are pretty much taken 99% of time).

If you hit 3 cool names that are supposedly available and then it turns out they are not, you are unlikely to use the suggestion site again.

Thanks sireat! You're totally right on both points.

1) I'll be implementing sometime soon

2) should be fixed now. I had a bit of an error in the backend (growing pains...) and it would show domains available that weren't.

Also, PSA, I just rolled out a new AI algorithm on Monday, and it's much much better than the one before! Try it out if you'd like :P

I gave it a shot with a fairly uncommon prompt, I'd imagine, and while some of the suggestions were a bit funky, I liked what I saw when compared to more traditional options!

I like the visual flair you added... wouldn't have guessed it used bootstrap!

At first when I saw the footer, I assumed Hugo was the SSG

Also on your self-titled domain, your logo stretches past my viewport (iPhone mini)

Thanks!! Here's a few answers:

- AI Model is a bit primitive still, I've been focusing on building the frontend recently. Now that I'm somewhat happy with that (viewport errors notwithstanding ^^), I'm focusing on the data science part of it. I hope to have a _much_ better model deployed in 5-7 days.

- Thanks!

- I've gotten that from someone else too. I kind of like putting my signature there, but if it's confusing I might change it. Maybe I could use my full name?

- Thanks for notifying! I'll fix that asap

Not a single-person company but I worked on projects and in roles where I was the single person making decisions. Here is my small overview of the ML (machine learning) and DS (data science) world. Hope you find it useful

> What is your tech stack?

The choices are python, scala, julia, matlab and R. Of these python takes at least 90% of the market. I am using python and will do so for the forseable future. Don't like it but it's super practical thing to do. Fingers crossed Julia hits mainstream in the next few years.

Since I am mostly in the computer vision world my stack is torch, torchvision, pytorch-lighting, opencv, scikit-image, scipy and numpy. From time to time i call upon numba when it is impossible to avoid a loop (python loops are sloooooow, numba JIT compiles). Very rarely i coded stuff in C++ and used cython to link it to rest of python. Most of the stuff is already there. For model inference serving i use fast api.

> Why did you choose it?

I chose python because there is no real choice here. It's a monopoly. Winner with most ready to use packages takes all. I am rooting for Julia to eventually win over python as using python as the (big) data language is contradictory given how slow the interpreter is. Also it is not a GPU native language.

Torch was more of a personal choice as I really hated tensorflow 1.X versions and the compute graph. It was hard to debug and follow what is going on. Tensorflow 2.X moved to same mode of computation like torch but it was already too late for me.

> Do you think your choices had any impact on your success?

I think going with tensorflow would have worked as well. Lot more annoying but good base. Using language other than python would have been a bad idea. Practical ML is a lot like JavaScript WebDev. Get a bunch of stuff from 3rd party packages and write some glue code.

I have always used Rails for my projects. In the most recent I took a detour to Django, which was successful, but never felt quite as productive.

If I start something new this year I think I would opt for Rails again. Even though it’s long in the tooth nowadays, I would choose it for productivity, time to market and availability of people if the project scales.

As I mentioned in another comment (https://news.ycombinator.com/item?id=28299878), I recently built a fairly simple GraphQL backend in Django, then switched to Rails as I hit performance issues with Python's GraphQL support.

I had no real experience with either before, but I think I'd agree with your summary. I felt Django was a bit "cleaner" and the code felt less magical, but I definitely spent quite a few hours trying to get things working which "just work" on Rails. The Rails library ecosystem seems a bit better too (both in terms of quality and quantity). Both enabled me to get a lot done with very little code, which when it comes to back-end I'm a fan of!

Why did you choose Django for your last one? What's your setbacks/difficulty compared to Rails?

For UI Drafter https://uidrafter.com I keep deps at a minimum for the sake of having fewer moving pieces. I chose a stack that I was already familiar with.

The impact on success is marginal, but I'd say that it's cost effective due to being more stable (in the easy to upgrade sense).

Cloudflare DNS => 2 Baremetal FreeBSD => 3 jails [Nginx, Node, PG]


SSL Let's Encrypt


Fastmail, Stripe

The PWA only uses React


I've got a few sites (trying to make money), all using the more or less same stack:

* Frontend: Svelte using SvelteKit (and one Sapper), TailwindCSS / TailwindUI, hosted on Vercel

* Backend: Rails API, hosted on Heroku

* Database: PostgreSQL

* Queues: Sidekiq

* Caching: Redis

* Mobile: Flutter

* AWS S3 for things like images.


* https://www.listenaddict.com/

* https://www.programmingtil.com/

* https://www.camerapricetracker.com/

* https://www.useproducer.com/

And business site / blog:

* https://www.codenameparker.com/

* https://www.davidwparker.com/

Edit: formatting

I checked out listenaddict.com, and saw it addressed a want I've had for some time. And the Search box returned several results for the speaker I want to follow! And then, I noticed there are no dates on the entries.

My main asset is the content I write and maintain. My tech stack is Craft CMS on Docker on Digital Ocean. Super simple stuff.

I think that Craft's data model allowed me to create a better website than if I used WordPress. It's trivial to create content types that aren't blog posts. You can have a real data model, with custom, interlinked post types and taxonomies.

Templating is also a breeze with Twig as its backbone.

I had issues, but they're caused by my own docker setup, and my aggressive caching practices. The lack of a plugin ecosystem is also frustrating if you're not ready to make your own.

The main issue is Redactor, the default wysiwyg editor. It's quirky to a point where I wouldn't feel safe letting someone else edit the website.

Edit: allaboutberlin.com

For my game, I started with unity + a bunch of plugins, but switched to unreal a few months later for a variety of reasons. C++ and a lot of custom systems - third party game plugins seem to have a lot more issues than in full stack dev. It’s not really about tech stack so much as good system design choices that lets you work really fast. I put a little site up for my prototype at https://barbariangrunge.com

I also have a app for tabletop rpg prep but it isn’t live yet: node, mongo (for a certain type of user editable schema), nginx, react, redux, the usual. I replaced chef with some bash scripts in my projects a while ago and it’s been great

I'm building https://simplescraper.io - data extraction in the spirit of the late Kimono Labs.

Front: Vue.js, Tailwind

Back: Node.js, Firebase (Database, Hosting, Functions, Scheduler)

Management: Airtable, Github, a 30,000 word README file

I loved kimono I hope you are successful and I will check out your product.

Niche music streaming service http://lofi.limo/

Front end: plain JavaScript

Back end: Phoenix and Elixir, Postgres, OpenBSD

Deployment: tmux on a bare-metal server at a local colocation facility

I had a consumer subscription platform with ~12k paying users from 2016 until July 2021.

I chose the stack I knew best that allowed me to iterate the fastest, and that was Rails.

I wouldn't have chosen anything else because using what I knew best allowed me to have less time playing guessing games with my stack and more time talking to customers.

It wasn't the fastest for my use case, and there were times where I hit some bottlenecks in terms of IO, but that was solved with scaling hardware — cheap, in comparison to learning an entire new stack.

12k paying users sounds like a pretty successful gig. May I ask what happened? Did you sell? Or was it not worth it economically?

I started https://etke.cc service not long ago.

Tech stack: ansible (automatization), docker (simplify deployments and maintenance), matrix (protocol) and golang (internal tools)

The idea of the service is to provide painless setup of matrix homeservers with huge customization options (not listed on website, otherwise it will be 3 desktop-screens-form in size), because if you went your matrix hs you must suffer :D and I'm trying to make it as simple as possible for newcomers to matrix world.

I run Newsy - https://www.newsy.co It turns your un-used domain names into a Reddit-like content aggregator.

I use

- Laravel - Vue - Postgres - Tailwind - Hosted on Vultr

This has been my go-to stack for quite some time. Very happy with it. Perfect combination for a mostly CRUD app.

This is super clever!

I run https://simplePDF.eu.

It’s a web-based PDF editor: add text fields, checkboxes, pictures (watermark) and signatures to otherwise non-interactive PDF documents.

Tech stack:

Server: DigitalOcean droplet (10€/month but only because I run all my projects on it, the 5€ one would otherwise suffice)

Database: Postgres

Frontend: NextJS

Backend: NodeJS (koa) serving a GraphQL API

Email: Mailgun

Payment processor: Stripe

I chose this tech stack because I’m proficient in it, which allows me to focus on shipping rather than figuring out how to ship.

I have a couple of corporations:



It seems most folks have "tech stacks," which, to me, means "Internet-based software applications, or SaaS." I write native apps for Apple devices (iOS/iPadOS, WatchOS, TVOS, and MacOS). Some, use Internet-derived services, but some are also standalone on the device, or use things like Bluetooth.

My "Stack" is basically Xcode.

I've found that CI/D tools aren't actually very useful, for me. I work in a very dynamic fashion that has lots of twists and turns, and these tools tend to be "Concrete Galoshes"[0]. I'll script portions of the build, like docgen.

Basically, the four apps that I use, are Xcode, BBEdit, SourceTree, and Adobe Illustrator (for creating assets. I like to use vector, if at all possible). I have dozens of others that are used on an "as-needed" basis, like Charles Proxy, or Postman. I also have a bunch of devices that are used as test subjects.

I make heavy use of Apple's TestFlight beta-test service.

And I use GitHub as my offsite repo (pro account/free account ).

[0] https://littlegreenviper.com/various/concrete-galoshes/

1. How do you handle bug reports? Do you use a ticketing system where your customers can report bugs?

2. Do you publish directly to the App Store, or do you send the application to the customer who publishes it for themselves?

1. I had originally set up a JIRA ticketing system, but never got bug reports, so I dismantled it. I dislike structure for the sake of structure.

These days, I get maybe one report, every couple of months. Most often, I find bugs, myself, through testing. I tend to deal with bugs immediately. A sticky pad on my desk, or a self-email, is usually sufficient.

On the app I'm currently developing, I use GitHub Issues to track bugs. Kinda quiet, but it's a good way to catalogue upcoming features. I still tend to fix bugs immediately. I run my projects as "constant beta," so I try to keep them bug-free, from the start.

Basically works pretty well.

2. I publish directly. I've had over 20 apps, but most have been deprecated, by now.

Something different. I'm a Voice Actor, my "tech stack" is Reaper-iZotope

My "business stack" is Zoho One, which has been fantastic for managing everything else that isn't my tech stack (crm, website, billing, books, docs, mail, file storage, etc...)

I built https://primerlabs.io. A conversational learning medium designed for people who wish to learn Computer Science on their own.

The tech stack is Meteor.js for backend and React + Apollo Graphql for front end. I use AWS lambda for Anki Card Generation generation and Latex-based PDF Generation for personalised Books. The main website uses self-hosted Ghost blog. Using Ghost for the main website + blog, saves a lot of time with SEO and Image compression. While compiling Latex on AWS Lambda Container is pretty slick.

Deployment: Docker, AWS Beanstalk

> Why did you choose it?

It's been an absolute joy working with Meteor. You can prototype quickly. For instance, last week, I was trying to add anonymous accounts i.e. no need to sign up to view the application and can merge directly once the user is ready to sign up. It took me a half a day of work to do that in Meteor.

There is a feature of real-collaborative learning I want to add in the application i.e. you can learn with friends and see their responses, notes in real time. Meteor has real-time capabilities using pub-sub which makes it quite easy to do so.

> Do you think your choices had any impact on your success?

The product is not mainstream yet. A small number of people who use it, love it. It requires a bunch of more courses to make the value proposition clearer to the users. But Meteor.js enabled me to prototype quickly since this is the third iteration of the product which I finally thought was closer to what I had in mind.

I am not in anyway associated with Meteor. I really love Meteor, that's all.

Interesting with someone who loves meteor. Personally, I really dislike Meteor and have extensive experience with it.

At work we're moving away from Meteor and that itself is a daunting task even if we're moving to a normal node backend and most stuff is copy-n-paste.

Stuff like background jobs etc are impossible in Meteor since there is really no good way of utilizing the cluster module or worker threads in node. Several times we've had issues with the entire app goin down due to Meteor. Also it has very poor performance and many requests takes a lot longer than a normal request for whatever reason if you transmit a lot of data. It adds several seconds probably due to some meteor magic.

But it's nice that you've found success with it, just goes to show that everyone's needs are different.

Lot of PostgreSQL but not a single commenter uses PostgREST.

Curious if it's just because the tool isn't well known enough or if it's because it has some serious drawbacks? Or people don't like writing SQL?

I love sql and have tried Postgres and posgraphile. The idea is really attractive, having the datastore home ask the business logic. But it’s kind of a pain to maintain and make changes. Plus there’s not a huge ecosystem around it like django, ruby, Phoenix, next has. And then there’s the whole exit thing— it’s not popular enough to find cheap developers to maintain it.

My friend uses it, I think, for for his single man GIS startup.

Works well, does what he needs it to.

On a similar note, has anyone used a pre-built "saas starter kit" or the like? If so, how is it going? Do you regret using it?

Reason I'm asking is because I'm trying to write a new app from scratch but I'm getting demotivated having to implement things like users, organisations, and other things that is essentially just re-inventing the wheel.

I made https://divjoy.com, which was mentioned by the other commenter. I'm obviously biased, but I'd say about 95% of users I talk to say they feel it saved them significant time. Of the people that request a refund, the issue is generally that they aren't happy with the UI kit (I give them Bootstrap, Bulma, or Material UI, they want Tailwind instead) or the database integration (I give them Firestore, they really want something relational). So basically, boilerplates can save you time but make sure you're still using the appropriate tech given your project and pre-existing knowledge. Happy to answer any questions.

I built a SaaS starter kit (https://usegravity.app) and use the same kit in a few SaaS products. I'm obviously biased, but I would never start a new project from scratch for several reasons:

1. Building boilerplate code takes a long time to do things properly and is often never as simple as we may anticipate.

2. The time is better spent on building features for customers.

3. As you mentioned, it's painful to build this stuff.

There is www.divjoy.com which seems promising (haven't tried it myself though)

App with Web account management:

Ionic, Stencil, Capacitor, TypeScript.

A CouchDB per user for auto sync across multiple devices.

Backend with Node, CouchDB, TypeScript, pm2 on a VPS.

Sendinblue for transactional emails (EU).

Why? Because Ionic lets me target iOS, Android and web with a single code base and almost no custom view code per platform. For non-technical users it is "good enough". Nobody ever complained about the non-nativeness.

CouchDB enables auto-sync with 0 lines of syncing code. It’s good, although there aren’t super many tutorials on the web.

CouchDB makes my app offline-first. I’d say this aspect alone is extremely great. A competitor has a similar app, but native. However, saving data requires an internet connection. This makes their native app feel slower than my non-native offline-first app.

For account management, I wouldn’t use it again, because I like SQL and that it makes it more easy to calculate some business statistics you might need only once.

> Nobody ever complained about the non-nativeness.

Noticed the same thing. Only devs care about "nativeness".

Any chance I could talk to you about offline first in production? I'm in the agricultural space and I'm considering specialising more in that direction - wondering what couch (and I assume pouch) are like to live with.

Email in profile.

I'm a fullstack JavaScript dev. I used to write everything in pure React and serve it with Express on Node but two years ago I started experimenting with all the fancy new frameworks and now my every project is:

- Gatsby or Next depending on how dynamic the content is

- Firebase for db, auth, and bucket storage, and sometimes hosting

- Vercel for NextJS hosting

- Recoil for state management; after years of using Redux it feels amazing, like it's a part of React

- ImmerJS for immutability

- SASS for CSS

I love my current stack. It definitely took a while to make everything work together smoothly. I don't understand the complaints about modern web dev. I've been building websites for almost 20 years and this is the most productive and fast I've ever been.

The only thing I still haven't figured out is CMS. Tried all of the fancy new headless CMSs but nothing works for me. Working on my own.

I had a look at a lot of the available headless CMS systems last year. Didn't fancy any of them as they just seemed like a UI for building a db schema essentially. So I just added the relevant tables for my content to my db and then it was trivial to add content management UI to react-admin and add react pages on the main website to show the content.

I think you don't find many problems because you're using firebase and that's outsourcing a lot of problems you'd face if you weren't using it.

Many people don't want to be tied to a provider to this level (I think it's all about trade offs, not saying it is a good or bad thing).

In the stack you described, in my experience, it is a real headache to get a stable and realiable system where you need authentication, permissions, users management, a CMS, background jobs, input validation, migrations, internationalization, etc.

Ruby on rails, Laravel, Django, etc provide a clean, well documented and battle tested solution to all of this. The modern stack you describe, if not outsourcing all of this to a third party, it is pretty complicated and no one builds it the same way.

That's why people complain about these modern stacks being complicated, you're just not feeling it because of the trade offs you've made. (Good for you!).

Have you tried sanity.io (a headless CMS)? I used it in conjunction with Gatsby and have had a great experience overall.

Yes, it was my favorite for a while. But recently I switched to GraphCMS for more basic data structure and I love it. Especially the UI.

I think what the market is missing is a sort of locally run CMS that is file based with Sqlite and managed completely with Git. Something that can can be moved around with project easily and have great version control.

Let's say you have a /content folder in your project that is it's own separate git repo, and there you have .md or .txt or sqlite files, and your assets, and there's a browser based client to manage it that runs locally.

I think you've just described getkirby.com including the content folder naming.

Not making a lot of moolah but here is the current iteration:

- HTTP API: Rust, type checks are really useful as web apps are often just messaging. Not being able to cleanly assert JSON structure in dynamic languages started to become an issue.

- DB: SQLite. Not having to manage servers, and just “click to open in GUI” on Mac OS makes development easier.

- Hosting: Google Container OS, Docker, regional disk replication. Every SQLite tx commit is replicated to two zones, the db is incrementally snapshotted hourly.

- UI: TS, React, MobX. Got tired of Reacts state APIs changing every year so just froze on MobX.

- Editor: IntelliJ. I am happy to pay monthly to not deal with plugins. Search is very fast and type aware. Works with all languages with the same shortcuts.

I built https://applesilicongames.com with Python and Flask on https://www.deta.sh

Currently looking into adding Tailwind (CSS)

https://optduty.com/ - smart on-call scheduling for PagerDuty. Small startup with about 20 clients right now and $30k ARR.

Front-end: ClojureScript, Rum and Javelin spreadsheet cell for state handling

CSS: Tailwindcss

Backend: Django + Django REST framework

Deployment: Ansible

Analytics: GoAccess

Statics: GoHugo

Misc: Nginx, Postgres, Redis Docker only for running client specific optimizers.

A lot of tools in the list, but everything is pretty lean, and allow me iterate really fast.

About success criteria, having more analytics would help me get a few extra clients, but because it's side project without any investors I'm happy with trade off.

And after companies are starting to use the produce, I hear a lot of positive vibe about strong privacy.

Golang backend, some light vanilla Javascript frontend. postgres db. running on podman (docker-compose), fedora server.

I have some background in C programming, so Go was easy to pick up. the standard libs are great for building server-side webapps with a sql backend. templates lib and some glue javascript make front-end pages a breeze.

I'm a linux guy thru-and-thru, so running fedora server on the latest kernel. latest podman from RedHat and docker-compose to orchestrate.

I'm one guy so I don't do any HA or cloud or any other funny business. My one server is racked nearby and I've had good history with the colo.

> postgres db. running on podman (docker-compose), fedora server.

Is there a reason to prefer Fedora Server over Fedora CoreOS for running containers?


I already use Fedora Workstation and am familiar with the environment, install, and setup process. CoreOS' "happy path" seems to be cloud (or at least hosted in a hypervisor) -native, and that was not the target here. There seem to be external dependencies on installing it to bare metal I didn't want to mess with[1]. I installed Fedora Server from .iso almost exactly the same way I've installed Fedora (workstation) many times.

My "day job" uses rhel, and with the recent CentOS end-of-life debacle I'd like to stay both FOSS and .rpm-compatible with rhel. I don't know for sure, but I think CoreOS is a different "vertical" than the fedora/rhel/centOS family.

I'm generally wary and suspicious of "automatic" updates, preferring to control when/how updates are applied to my machines. $ sudo dnf system-upgrade is a well-known quantity to me.

I have a complicated LVM setup, and significant time/effort already invested into LVM. As of F34 LVM/ext4 is still first-class.

CoreOS seems to be targeting cloud/kubernetes as implementation characteristics, and my "one man shop" gig is the anti-that. I'm pretty old school - only just started learning Docker about a year ago. I've recently bought into containers as packaging/deployment aids, and using docker-compose to keep deployment in version control. I guess all of this is to say I'm trying to "keep it simple / stupid" and re-use what I already know. Unless CoreOS can give me order-of-magnitude performance gains, I don't know the value prop beats the cost to pick it up.

[1] https://docs.fedoraproject.org/en-US/fedora-coreos/bare-meta...

> CoreOS seems to be targeting cloud/kubernetes as implementation characteristics, and my "one man shop" gig is the anti-that.

That makes a lot of sense.

> My "day job" uses rhel, and with the recent CentOS end-of-life debacle I'd like to stay both FOSS and .rpm-compatible with rhel.

Most people have entirely missed the point of CentOS Stream[1], and even the founder of Rocky Linux has recently admitted that[2].

If CentOS Stream is going to be just a FOSS upstream for RHEL, will you still pick Fedora Server over it?

[1] https://medium.com/swlh/centos-stream-why-its-awesome-5c45d9...

[2] https://www.theregister.com/2021/07/09/centos_stream_greg_ku...

| If CentOS Stream is going to be just a FOSS upstream for RHEL, will you still pick Fedora Server over it?

Yes, but only because Fedora Server is (also/even more) a FOSS upstream for RHEL. Doing something that isn't Fedora (Workstation/Server) is "one more thing", however small, and I'd rather spend the brain tokens elsewhere. If it 10x'ed my app I'd do it, but I can't imagine it would.

Thanks for the links, I wasn't so mad at CentOS Stream the product itself per se, I think it's a valid product / change to the old model. My biggest issue is the changing of the promises - the supported life of the product changed in-production. That's a big no-no to me.

Fedora (upstream) requires you to keep up, but at least it doesn't make promises that it won't keep.

Thanks for the detailed answers.

I have been using Fedora Workstation for a while now, and I am trying to pick the best single-server OS for all my future projects.

Since Fedora is now a direct upstream for CentOS Stream – and CentOS Stream 9 is basically a LTS version of Fedora 34[1] – I am leaning towards CentOS Stream.

In fact, CentOS Stream might now even make sense as a stable desktop OS, and as a better alternative to Ubuntu LTS.

[1] https://news.ycombinator.com/item?id=25373050

I'm building a web-app called Tripmix, that lets you build travel guides for your friends (like FB Recommendations meets Canva).

I use Postgres, FastAPI, and TypeScript React. I wouldn't recommend TypeScript for solo developers who need to iterate and prototype quickly. That's been my biggest regret thus far. I think the end result will be much cleaner but I've sacrificed a lot of time getting it there, when I could have been shipping. It's all been a good learning experience though, and that's how I'm treating it.

Picked all of them out of familiarity.

Audiobook meta search: https://www.audiobookmate.com

- Backend: Flask + SQLAlchemy + Celery

- Frontend: Angular + Bootstrap

- Database: MySQL + Elasticsearch + Redis

- Deployment: Kubernetes on GKE

> What is your tech stack?

Backend: LAMP (Linux Apache Mysql Php)

Backend Framework: Php no framework only composer

Frontend Framework: Vuejs 2.6

Deployment: rsync

Hosting: contabo (8gb/€5)

Email: SES

Error reporting: Honeybadger (it's free)

> Why did you choose it?

It's something I've known my entire life and it works great for me.


> PHP no framework

> rsync

Simple and to the point, can't go wrong. I always like seeing some classic LAMP stack on postings like this.

I am running several projects [0]. One of my latest is https://fromzerotofullstack.com , with video for developers to learn from real projects.

For it I use htmx [1], sass [2], Django, Postgres, and Auth0 [3]. I deploy on linode using Ansible [4]. For the videos I use OBS [5] and some custom python scripts. If I need any extra 3d or animation, I use Blender[6] and Shotcut [7].

I have tried other technologies for other projects, like React or Elm (which I find great). But so far this setup (maybe changing custom css by tailwindui mostly) is my most productive.

[0] https://mejuto.co

[1] https://htmx.org/

[2] https://sass-lang.com/

[3] https://auth0.com/

[4] https://www.ansible.com/

[5] https://obsproject.com/

[6] https://www.blender.org/

[7] https://shotcut.org/

Edit: link format

I’m not a registered company, but a solo dev who creates things for joy and ends up getting paid for it.

Legacy projects: Plain HTML frontend with minimal vanilla JS for small progressive enhancements, PHP (custom framework) backend, Postgres, deployed directly on rented bare metal hosts, Salt for configuration

New projects: HyperApp JS frontend, Python (aiohttp) or Rust (warp) backends, Postgres, deployed in docker containers on rented bare metal hosts, Ansible for configuration


switched from salt-server to salt-ssh after there was a salt-server exploit which owned my whole fleet. Switched from salt-ssh to ansible-ssh after salt-ssh was broken on osx for 14 months (and counting…)

Backups done with each project having a cronjob dumping a snapshot into a folder, then SyncThing copies those onto a remote backup host, with the backup host configured to keep old versions of files

Debian stable for the hosts, language-specific images for containers. I wonder if my bare-metal OS runs basically only sshd and docker, is there a better choice than Debian? It works fine, just seems overkill...

Monitoring done with telegraf + influxdb. Previously I had grafana in front. Recently moved to influxdb 2.0 with built-in dashboards, which is ok, but grafana was better (more graph settings (influx doesn’t even do log-scale y axis??); more flexible alarming; graphing and alarming were integrated where influx has them separate) - considering putting grafana back even if it means re-creating all the dashboards and alarm rules for a second time...

Alpine is a lot simpler and easier to use than debian for me. Package manager is also a lot better.

Perfect choice if you're going minimal.

> I wonder if my bare-metal OS runs basically only sshd and docker, is there a better choice than Debian? It works fine, just seems overkill...

Fedora CoreOS is designed for container hosts, but I haven't used it.

Profilehunt( https://profilehunt.net ) is a Kanban board built for organizing your job search. It comes with a browser extension so you can add jobs from any website to your board. Profilehunt sends weekly reminders and updates on applications.

It has been built using following technologies: - Ruby on Rails - Web framework

- StimulusJS - Javascript

- TailwindCSS - CSS

- Redis - Memory store

- Postgres - Database

- Nginx - Reverse proxy

- AWS Cloudfront - CDN

- AWS lightsail - VPS

- Github - Code hosting

- Capistrano - Automated deployments

- Sidekiq - Background Jobs

- AWS SES - Email SMTP server

Edits : Formatting

Never forget an autorenewing subscription again: https://everlint.com

Hosted on a simple Debian Linux VPS with https://tilaa.com. Running nginx with Let's Encrypt certs.

Built in Ruby on Rails with PostgreSQL for the database and Stimulus as JavaScript framework. Charts are generated with ChartJS and CSS is using Bulma framework.

I run personal food storage inventory system as a webapp/pwa: https://www.foodstorageplanner.com

Front end runs Vue 2 with Quasar, JsBarcode, custom service worker, and PouchDB for local data persistence. The stack is optimized for ease of adding features with the pre-build GUI components, and front end PouchDB facilitates offline capability as well as keeping a user's various clients in sync.

The backend uses an nginx proxy to CouchDB for data persistence and replication, a small node.js API, and product data from various free repositories. CouchDB serves as the master store as well as the hub of replicating data between clients on the same account.

The architecture and tech choices are very closely tied to client desires. Clients planning for disasters demand the software continue to function offline or in degraded network environments, so this feature drives the overall offline-first data architecture. Data needs to remain in sync across a family's devices so the replication and keeping all the clients up to date is a big value add.

An environment-health-security app for the B2B market

* Flutter frontend iOS/Android

* Parse Platform backend backed by MongoDb, hosted on Hetzner dedicated server with backups in Azure

- Migrated from Firebase

* ASP.NET 5.0 backend for various other integrations and periodic back office jobs

- Migrated from Firebase Functions

* Back office tools (CRM, billing etc) in React/Redux

- Currently experimenting with Appsmith to allow for quicker iterations

* Landing page in React

- Originally just plain HTML. Re-wrote to React to be hip.

I would try Budibase instead of appsmith

Thanks, I'll check it out. Definitely seems like Budibase fits my use case.

I found Budibase cumbersome to use. It looks sleek, but the overall usability is worse.

To delete a component you have to find it in the component list, open a hamburger menu and delete. This despite having a panel with component details open with plenty of screen real estate for action buttons.

The API I use outputs data in a nested json ("results: ..."). As such Budi parsed everything into a single column. There was no clear way around it. Automations maybe?

In general there was very little use of the screen with most things being empty. I guess it is earlier in development than Appsmith. I do like the aesthetics and SSO support though. It was also much easier than Appsmith to install self-hosted. I'll keep following the project.

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 this 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. Which method did you use?

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!


Those changes sound great! I'll definitely keep following you. I use docker compose.

Your product is solving a very real problem that I think is under served. I developed a lot of back office tools in my old job. It was very easy to find good ideas for tools that would improve the workflow and efficiency of our sales, marketing and accounting departments.

I found that rapid prototyping and quick iterations worked great for finding good solutions for non-technical stakeholders. It made it possible to give them something concrete to "touch and feel" after every meeting. It spurred a lot of engagement.

Low-code tools like yours will really aid this kind of process, and I look forward to seeing where you'll go.

Hi CerebralCerb,

I'm a co-founder of Appsmith. Thanks for trying us out. Would love to know the problems you ran into while self-hosting? We are replacing the install script with a docker compose, so errors should reduce. My email is abhishek@ if you need help.

The port used by the docker container could not be setup during installation. Letting the setup fail and then edit the intermediates (docker-compose.yaml) worked fine but it was not elegant compared to Budibase's installation procedure. It's an issue resolved in 5 minutes though so far from a deal breaker, and with the changed install script it should be gone.

You've made a pretty great product and I look forward to following your journey. We're already using it in production.

or you could check Dronahq.com

No self-hosted option unfortunately. It seems to be a more mature solution than Appsmith though.

Self-hosted solution is coming up soon. Would love to hear your feedback on the platform though.

I first used my Google account to sign up using my phone, but decided to switch to desktop halfway through the onboarding process. It was then impossible to login because: "Email ID not registered." It was also impossible to register because: "An account already exists for this email address." I started a new free trial using another Google account.

I tried to add my REST API as a data source, but I had to initialize it with an endpoint that returned some entities. My base endpoint ('/parse') does not do this. Therefore it seems like I need to add a new connector for every API resource I have ('/parse/classes/Dog' etc).

I added a table and hooked it up to the data connector I made earlier, but despite using a previously configured connector I had to re-configure authorization headers etc. Inbuilt pagination was nice.

I clicked "Test&Finish", everything looked alright but the table in the designer did not update. After spending a few minutes trying to figure out what went wrong I tried the play button and it seems like it worked all along, just that the data changes is not reflected in the designer. That kinda ruins the WYSIWYG aspect of it.

I figured I should try one of the templates to see how a real DronaHQ app can be. It seemed to me like DronaHQ can do more complex apps than the two others. I tried the Dashboard template. It had a bunch of filter options, but nothing happened when I clicked on them.

Overall it looks like DronaHQ is more ambitious than the others. But the bugs really needs to be ironed out.

Thanks for sharing your experience @cerebralcerb . I can understand for first time user playing around with new tool can be daunting. e.g. there is a small notification on top of Table which highlights that "below is sample data, to view your real data that you bind. Plz go to preview mode"

But these feedbacks encourages the team to smoothen the experience further.

Yes, you are correct the platform is capable of creating quite complex apps too. We have many operational tools built on it by IT and business teams alike.

Thanks again for taking time to share your feedback.

I run my digital product incubator being a simple agency specializing in building startups from scratch coaching founders (https://Cubitoo.com) and to keep things simple here’s what I use:

Front end: plain JavaScript (as coffeescript) Back end: Ruby on Rails Host: $7 Heroku hobby dyno SSL: provided by Heroku Proxy: Cloudflare Database: Postgres Caching: Redis and memcached Indexing: full text search in postgres

I also do iOS apps, using native SwiftUI framework. My newest app is Howdy, a journaling app: https://apps.apple.com/de/app/howdy-journaling-reflection/id...

- Firmware in Rust, using the Rust-workinggroup cortex-m and peripheral-access-crates. A custom Hardware Abstraction Layer for STM32 and nRF-52.

- KiCad for PCD design, SolidWorks for CAD.

- Website backend Python/Django. Frontend is HTML with Django's templating, and CSS. Modern JS to manage the cart, handle orders, and validate the address and order forms.

- Heroku to host the website.

I run https://www.usertrack.net, a self-hosted analytics platform.

The tech stack of the product itself:

Frontend: TypeScript, ReactJS, Parcel and GulpJS for building and deploying

Backend: Apache, PHP, MySQL

The tech stack for distributing the project:

- A licensing server written in Node.JS, running on a VPS

- GitHub repo to host the integrity hashes of the product (for extra security)

- LAMP VPS for the landing page, Cloudflare CDN on top

- Payment provided through Paddle.com

Visualization software for genomics scientists at https://omgenomics.com/circa

I made it during a 2017 sabbatical between my PhD and getting a "real job" and it's been passive ever since.

Tech stack: * D3.js for visualization and actually the whole UI. * Electron to make it a desktop application, which also means users' data is stored on their own computers. * Selling on Gumroad. * Website with landing page and usage info is in Jekyll on GitHub pages. Aside from that, no servers :)

I chose this because I had used D3.js a lot before, and making it a desktop application is just what works best for users and prevents outages. I would probably make all the same choices again.

Content project at https://www.tenproblems.com/ , Literature Reviews for Inquisitive Minds. Democratizing academic debates for the 2020s against fake news, sensationalism and outright biased agendas.

Wordpress (anchor website & free content) + Amazon Kindle (paid content & casual customers management) while using Google and Google Scholar as the main source for up to date references and a word processor to write the booklets.

Still tinkering about blog posts (more free content on the website to attract more traffic through SEO buzzwords) vs simple dedicated software demos on github (to create a portfolio while testing which ones to pursue commercially down the line).

Success? Break even in terms of sales for now, plus thousand visitors from all over the world enjoying the free content, and someone kindly commenting to help or just to say thank you.

IOS, native Firebase + Java and Google Cloud, for the backend Database, Firebase Realtime DB, as a NOSQL solution (works better than Firestore for me) and actually build a simple RCP service on top of it.

My next backend might be on Go and just use a simple Rest service, and minimize Firebase usage (it is still good for real time chat type of apps).

Just got everything running about 2 week ago for my jobs site, https://waitwhatdoyoudo.com.

> What is your tech stack? Frontend - React Backend - Django (Python) Database - Postgres All hosted through Heroku.

Also, Data Pipelines - Airflow (Python hosted on GCE) Analytics - Google Analytics Email - Mailchimp

> Why did you choose it? I am a Data Engineer by day so regularly use Python and GCP. Where I could, I chose tools I'm already working with to limit the learning curve of using them. Where I couldn't, I chose whichever option was most hands off.

> Do you think your choices had any impact on your success? We will see. After I get the current feature I am working on, I plan to transition to marketing the site rather than working on the site. Success will be whether or not I have to jump back into maintenance mode.

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 (currently working on Gist integration).

My stack for https://www.withcardinal.com is based on my experience with working on startups and the things that come up down the road. We're technically a 2 person company because I have a more business oriented co-founder, but I'm the only programmer and ops person.

> What is your tech stack?

We use a managed K8S provider so we don't have to deal with server and cluster upgrades ourselves. That's a huge time sink, especially as server counts scale up. Our cluster has Nginx for ingress, Loki for logs, Prometheus for metrics, and Grafana to keep an eye on things.

We're building the app in Node.js, primarily because in our app there are a handful of spots where we can share code between front-end and back-end. We use Next.js a lot, and use Bull for our queueing at present, and use the ws module for our websockets.

We use PostgreSQL for database, without an ORM just because that's my preference, and we use Redis for queues and some caching. That'll likely change over time as we grow, but managed Redis is pretty much ubiquitous at this point so it's an easy place to jump in.

> Why did you choose it?

My stack is mostly based on past experience and the requirements of the app. Since I'm hoping to grow the company and am mainly b2b focused, having a popular infrastructure stack makes life a lot easier in security audits and contract redlines, and in finding ubiquitous tools. Like I mentioned above, I didn't want to deal with server upgrades, so I'm using a managed k8s provider. We're using node.js heavily because there were a few obvious paths where code could be shared between server and client.

> Do you think your choices had any impact on your success?

We will see. We're very early in our journey, but I'm hoping keeping things easy to change and ubiquitous will help us as we progress.

Heroku works best for a company of one to offload most of the devops out

Otherwise, https://dokku.com has been really stable to launch your own heroku on cloud services like Digital Ocean or AWS

Gives the same experience as Heroku but with more flexibility

Dokku is GREAT. I've been using it for about 4 years now and it's rock solid. I love it.

Decision Log SaaS with Slack Integration:

* PHP with Laravel + Postgres on the back

* Blade + Livewire on the front

* hosted on Clever Cloud

I chose it, because it's a stack where almost all problems have already a solution because others had it before. Also, and this was really important at the time: There is just so much built in, PHP+Laravel is a powerhouse for rapidly developing MVPs.

I'm still pretty happy with it. It can take you pretty far if you keep your code base clean, use all the existing tooling like static analyzers, code formatter, and write tests. While success is still moderate, I don't think I could have done it with a different Tech Stack, at least not in the same time-frame and with the same confidence.

Commandeer - Desktop App for AWS and LocalStack https://getcommandeer.com ----

- AppSync, ApiGateway, DynamoDB, Lambda, Athena, S3 for the backend - Vue.js, AWS JS SDK, TypeScript, Electron for the desktop app - Vue.js, Firebase Hosting for the Web Portal - Nuxt.js for the marketing site - Forestry.io for the docs - Mailchimp for emails - Stripe for payments - SendGrid for transactional emails - Auth0 for authentication

(Note: the about page shows a few more people, but 1 is my wife, one is my cousin, and the other two don't work on the project anymore, so really me myself and I)

I have a couple of SaaS products: Belt drive design tools for companies in the mechanical power transmission industry, and dealership management software for manufactured housing ("mobile home") retailers.

Back end:

- Windows Server 2012 - MS SQL Server - ASP.NET - Web API 2 - C# - Dapper "micro ORM" (I dislike heavy ORMS and would rather write my own SQL)

Front end: - Bootstrap - jQuery - DataTables (https://datatables.net/)

I use these "boring" things because I'm familiar with them from contract programming work for companies where Microsoft stuff is common.

Digital media asset management with dynamic updating, cryptographic verification, blockchain verification, social media integration, and more:


Cloudflare facing the Internet Marketing website and user dashboard with Next.js Both hosted with Cloudflare Pages API served with Node 14 on Azure functions User attribute store in Azure Cosmos DB User asset storage in Backblaze B2 Share implementation with Cloudflare Workers Blockchain and IPFS via Infura Uptime monitoring and alerting with UptimeRobot (Probably others I’m forgetting)

I run a social reading app call Bookship (think, virtual book club). https://www.bookshipapp.com

App Tier on iOS, Android, Web, from a single source built with: Ionic V1 / Javascript

in-app Live Video Chat through JITSI

Deep Linking to app by Branch

Web hosting: EC2/Route53/Cloudfront

Web Analytics: Mixpanel

Server (old school: Mysql/PHP, MYSQL on AWS RDS server, PHP on the web servers @ EC2)

Source code mgmt: Github

IDE: Vs Code/Xemacs

Node + SimplePiE for ingesting and processing RSS feeds mentioning books.

Lifecycle email services through Mailgun.

Lifecycle text messages through Twilio

Blog via AWS Lightsail/Wordpress

Social media automation: Buffer

So I have two distinct companies

Primcloud - Cloud hosting platform (https://primcloud.com)

- Infra: Kubernetes on AWS

- Backend: Moleculer.js Microservices, Prisma with PostgreSQL

- Frontend: React/Next.js and Tailwind CSS/UI.

NiftyCo - Collection of low-touch SaaS products I am building. (First product: https://prevalidate.com)

- Infra: Deployed on Primcloud

- Backend: Next.js API / Prisma via my package Next-SaaS (https://git.io/next-saas)

- Frontend: React/Next.js and Tailwind CSS/UI.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact